c语言念数字,有同学看看哪里错了吗,把数字转化成拼音

#include <stdio.h>
#include <math.h>
int main()
{
int n,x,y;
int i=0;
scanf("%d",&n);
y=n;
if(n<0){
printf("fu");
n=-n;
}
while(n>0){
n=n/10;
i++;}

while(y>0){
    x=y/pow(10,(i-1));
    
    switch(x){
        case 1:
            printf(" yi");
            break;
        case 2:
            printf(" er");
            break;
        case 3:
            printf(" san");
            break;
        case 4:
            printf(" si");
            break;
        case 5:
            printf(" wu");
            break;
        case 6:
            printf(" liu");
            break;
        case 7:
            printf(" qi");
            break;
        case 8:
            printf(" ba");
            break;
        case 9:
            printf(" jiu");
            break;
        case 0:
            printf(" ling");
            break;
    }
    i--;
    y=y/10;

}

return 0;

}

img

y=y/10; 改成 y=y-(pow(10,i)*x);

你题目的解答代码如下:

#include <stdio.h>
#include <math.h>
int main()
{
    int n, x, y;
    int i = 0;
    scanf("%d", &n);
    y = n;
    if (n < 0)
    {
        printf("fu");
        n = -n;
    }
    while (n > 0)
    {
        n = n / 10;
        i++;
    }

    while (i > 0)
    {
        x = (int)(y / pow(10, (i - 1))) % 10;

        switch (x)
        {
        case 1:
            printf(" yi");
            break;
        case 2:
            printf(" er");
            break;
        case 3:
            printf(" san");
            break;
        case 4:
            printf(" si");
            break;
        case 5:
            printf(" wu");
            break;
        case 6:
            printf(" liu");
            break;
        case 7:
            printf(" qi");
            break;
        case 8:
            printf(" ba");
            break;
        case 9:
            printf(" jiu");
            break;
        case 0:
            printf(" ling");
            break;
        }
        i--;
    }

    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

这做麻烦了。定义0到9的拼音数组,然后用递归函数,对整数不断求余10,得到每一数字,作为下标输出拼音

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632