作业求助
#include<stdio.h>int main()
{
int a={0},i=0,sum=0,n=1,t,p;
for(a=getchar();a!='\n';a=getchar())
{
a-=48;
sum+=a;
i++;
}
a='\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;
}
我自己试了感觉没什么问题,可是无法通过,有人可以帮看下吗 #include<stdio.h>
int main()
{
int a={0},i=0,sum=0,n=1,t,p;
for(a=getchar();a!='\n';a=getchar())
{
a-=48;
sum+=a;
i++;
}
a='\0';
t=sum;
do
{
n*=10;
sum/=10;
}while(sum);
for(n=n/10;n;n/=10)
{
p=t/n;
if(n == 1)
{
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;
}
break;
}
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;
}
t-=p*n;
}
return 0;
}
你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你要控制下格式,结尾没有空格哦,我已经写了正确的代码
n是int类型,第二个for循环中 n/10必然为0 BngThea 发表于 2018-11-15 08:43
n是int类型,第二个for循环中 n/10必然为0
对啊,我希望他为0就退出循环 value = input(':') #假设就是输入数字
value = sum( )
num_str = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
result = ''
while value:
temp = value %10
index = temp -1
value //= 10
result = num_str +result
print (result)
混分 ,我也不知道有没有用 ,我没学过你上面代码的语言 ,看不出问题 ,sorry Legend丶Hu 发表于 2018-11-17 20:33
你的代码将n==1的情况改下,'\b'不能用在这里的具体这个字符退格键然后你看不出,但是oj上测得出,还有你 ...
谢谢,之前自己解决了
页:
[1]