基础编程题目集 7-23 币值转换 (20分)

在这里插入图片描述

#include <stdio.h>
#include <math.h>
int main()
{
    int n;
    scanf("%d", &n);
    char *sv[10] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
    //    char *st[8]={"Y", "Q", "B", "S" "W", "Q", "B", "S"};
    char *st[8] = {"S", "B", "Q", "W", "S", "B", "Q", "Y"};
    int w = 0;
    int j;
    int temp = n;
    while (temp)
    {
        temp /= 10;
        w++; // 获取位数
    }
    j = pow(10, w - 1);
    int h;
    int z_c = 0; // 记录0是否连续

    if (n == 0)
    { // 考虑0的情况
        printf("a");
    }
    while (n)
    {
        h = n / j;
        if (h)
        {
            printf("%s%s", sv[h], st[w - 2]);
            z_c = 0;
        }
        else
        {
            if (z_c != 1)
            { // 不连续时
                if (w == 5)
                { // 处于万位时只输出万
                    printf("W");
                    z_c = 0;
                }
                else
                {
                    printf("a"); // 正常情况输出0即可
                    z_c = 1;
                }
            }
        }
        n = n % j;
        j /= 10;
        w--;
        if (j == 1)
        {
            if (n == 0)
            {
                break;
            }
            printf("%s", sv[n]);
            break;
        }
    }
    return 0;
}

发布了287 篇原创文章 · 获赞 117 · 访问量 8927

猜你喜欢

转载自blog.csdn.net/qq_44458489/article/details/105400261