标题:一道题,超过一定的数运行结果就会不对,大佬看看哪里错了
取消只看楼主
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
结帖率:100%
已结贴  问题点数:18 回复次数:1 
一道题,超过一定的数运行结果就会不对,大佬看看哪里错了
题目:读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu


我的代码:
#include <cstdio>
int main()
{
    int n,sum=0;
    int b=10;
    scanf("%d",&n);
    while (n/10.0!=0)
    {
        sum=n%10+sum;
        n=n/10;
    }
    while(sum/b!=0)
    {
        b=b*10;
    }
    b=b/10;
    while (b!=1)
    {
        switch (sum/b)
        {
            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;
        }
        sum=sum%b;
        b=b/10;
    }
    switch (sum)
        {
            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;
        }
    return 0;
}
搜索更多相关主题的帖子: int sum case printf break 
2018-07-23 18:00
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
得分:0 
666,谢了
2018-07-29 20:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488775-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.138328 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved