鱼C论坛

 找回密码
 立即注册
查看: 2447|回复: 5

[已解决]作业求助

[复制链接]
发表于 2018-11-15 01:17:56 | 显示全部楼层 |阅读模式
10鱼币
#include<stdio.h>
int main()
{
        int a[100]={0},i=0,sum=0,n=1,t,p;
        for(a[i]=getchar();a[i]!='\n';a[i]=getchar())
        {
                a[i]-=48;
                sum+=a[i];
               
                i++;
        }
        a[i]='\0';
        t=sum;       
        do
        {
                n*=10;
                sum/=10;         
        }while(sum);
        for(n=n/10;n;n/=10)
        {
                p=t/n;
                switch (p)
                {
                        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;
                        default :printf("ling ");break;
                }
                if(n==1)
                {
                        putchar('\b');
                }
               
                t-=p*n;
               
        }
        return 0;
}
我自己试了感觉没什么问题,可是无法通过,有人可以帮看下吗
最佳答案
2018-11-15 01:17:57
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int a[100]={0},i=0,sum=0,n=1,t,p;
  5.         for(a[i]=getchar();a[i]!='\n';a[i]=getchar())
  6.         {
  7.                 a[i]-=48;
  8.                 sum+=a[i];
  9.                
  10.                 i++;
  11.         }
  12.         a[i]='\0';
  13.         t=sum;        
  14.         do
  15.         {
  16.                 n*=10;
  17.                 sum/=10;         
  18.         }while(sum);
  19.         for(n=n/10;n;n/=10)
  20.         {
  21.                 p=t/n;
  22.                 if(n == 1)
  23.                 {
  24.                         switch (p)
  25.                         {
  26.                                 case 1:printf("yi");break;
  27.                                 case 2:printf("er");break;
  28.                                 case 3:printf("san");break;
  29.                                 case 4:printf("si");break;
  30.                                 case 5:printf("wu");break;
  31.                                 case 6:printf("liu");break;
  32.                                 case 7:printf("qi");break;
  33.                                 case 8:printf("ba");break;
  34.                                 case 9:printf("jiu");break;
  35.                                 default :printf("ling");break;
  36.                         }
  37.                         break;
  38.                                 }
  39.                 switch (p)
  40.                 {
  41.                         case 1:printf("yi ");break;
  42.                         case 2:printf("er ");break;
  43.                         case 3:printf("san ");break;
  44.                         case 4:printf("si ");break;
  45.                         case 5:printf("wu ");break;
  46.                         case 6:printf("liu ");break;
  47.                         case 7:printf("qi ");break;
  48.                         case 8:printf("ba ");break;
  49.                         case 9:printf("jiu ");break;
  50.                         default :printf("ling ");break;
  51.                 }
  52.                 t-=p*n;
  53.                
  54.         }
  55.         return 0;
  56. }
复制代码

你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你要控制下格式,结尾没有空格哦,我已经写了正确的代码
啊.PNG

最佳答案

查看完整内容

你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你要控制下格式,结尾没有空格哦,我已经写了正确的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-15 01:17:57 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int a[100]={0},i=0,sum=0,n=1,t,p;
  5.         for(a[i]=getchar();a[i]!='\n';a[i]=getchar())
  6.         {
  7.                 a[i]-=48;
  8.                 sum+=a[i];
  9.                
  10.                 i++;
  11.         }
  12.         a[i]='\0';
  13.         t=sum;        
  14.         do
  15.         {
  16.                 n*=10;
  17.                 sum/=10;         
  18.         }while(sum);
  19.         for(n=n/10;n;n/=10)
  20.         {
  21.                 p=t/n;
  22.                 if(n == 1)
  23.                 {
  24.                         switch (p)
  25.                         {
  26.                                 case 1:printf("yi");break;
  27.                                 case 2:printf("er");break;
  28.                                 case 3:printf("san");break;
  29.                                 case 4:printf("si");break;
  30.                                 case 5:printf("wu");break;
  31.                                 case 6:printf("liu");break;
  32.                                 case 7:printf("qi");break;
  33.                                 case 8:printf("ba");break;
  34.                                 case 9:printf("jiu");break;
  35.                                 default :printf("ling");break;
  36.                         }
  37.                         break;
  38.                                 }
  39.                 switch (p)
  40.                 {
  41.                         case 1:printf("yi ");break;
  42.                         case 2:printf("er ");break;
  43.                         case 3:printf("san ");break;
  44.                         case 4:printf("si ");break;
  45.                         case 5:printf("wu ");break;
  46.                         case 6:printf("liu ");break;
  47.                         case 7:printf("qi ");break;
  48.                         case 8:printf("ba ");break;
  49.                         case 9:printf("jiu ");break;
  50.                         default :printf("ling ");break;
  51.                 }
  52.                 t-=p*n;
  53.                
  54.         }
  55.         return 0;
  56. }
复制代码

你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你要控制下格式,结尾没有空格哦,我已经写了正确的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-15 08:43:51 | 显示全部楼层
n是int类型,第二个for循环中 n/10必然为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-15 18:27:38 From FishC Mobile | 显示全部楼层
BngThea 发表于 2018-11-15 08:43
n是int类型,第二个for循环中 n/10必然为0

对啊,我希望他为0就退出循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-17 19:16:08 | 显示全部楼层
value = input(':') #假设就是输入数字
value = sum([int(i) for i in value] )
num_str = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
result = ''
while value:
    temp = value %10
    index = temp -1
    value //= 10
    result = num_str[index] +result
print (result)

混分 ,我也不知道有没有用 ,我没学过你上面代码的语言 ,看不出问题 ,sorry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-18 18:23:56 | 显示全部楼层
Legend丶Hu 发表于 2018-11-17 20:33
你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你 ...

谢谢,之前自己解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 04:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表