#include<stdio.h>
int main()
{
int b[111],d[111],k=0,sum=0,l=0;
char a[111];
gets(a);//这一题数非常大,只能用字符串表示;
for(int i=0;a[i]!='\0';i++)
{
b[k++]=a[i]-48;//字符不能加减运算,让字符减去字符'0'的ASCII码,就变成字符对应的数了;
}
for(int i=0;i<k;i++)
{
sum=sum+b[i];//各个位上的数相加的和;
}
while(sum!=0)//再把和的各个位提取出来;不过这是倒序的;
{ //比如sum=123,这提取出来的是321;
d[l++]=sum%10;//和的各个位都存到数组d中;
sum/=10;
}
for(int i=l-1;i>=0;i--)//逆序循环
{
switch(d[i])//d[i]的值等于下列case后的那个数,就输出那个case;
{
case 0: printf("ling");break;
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;
}
if(i!=0)
{
printf(" ");
}
}
return 0;
}
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
const char Fanyi[10][10] = { "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu","ling" };
char Result_r[10][10];
int main()
{
char Shuru[1000];
int result = 0;
scanf("%s", &Shuru);
printf("测试 %s-%d\n", Shuru, strlen(Shuru));
for (int i = 0; i < strlen(Shuru); i++)
{
result = result + (int)(Shuru[i] - '0');
}
itoa(result, Result_r[1],10);
printf("weishu:%s\n", Result_r[1]);
for (int i = 0; i < strlen(Result_r[1]); i++)
{
printf("%s ", Fanyi[int(Result_r[1][i] - '0')-1]);
}
getchar();
return 0;
}
#include <stdio.h>
int main() {
int sum = 0;
char a, *c[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
while ((a = getchar()) != '\n')
sum += a - '0';
if (sum / 100)
printf ("%s ", c[sum / 100]);
if (sum / 10)
printf ("%s ", c[sum / 10 % 10]);
printf ("%s", c[sum % 10]);
return 0;
}
本回答被提问者采纳你这不对吧
错的吧
本回答被网友采纳