#include <stdio.h>
#include <math.h>
int main()
{
char sa[100] = {0}; //定义一个字符串,用来接收大数字
int a[100] = {0}; //定义一个对应数组,方便之后存储数据进行计算
int i = 0,j;
int sum = 0;
int count1 = 0; //计录输入大数字的位数
int count2 = 0; //记录各位数相加之后的和的位数
int x,y;
scanf("%s",sa); //输入所要计算的大数字
while(sa[i] != '\0') //将大数存入一个数组
{
a[i] = sa[i] - '0';
count1++; //大数字共count1位
i++;
}
for(j = 0;j < count1;j++)
{
sum += a[j]; //求出大数字的各位数和为sum
}
do
{
sum /= 10;
count2++; //计数sum的总共位次
}while(sum != 0);
for(j = 0;j < count1;j++)
{
sum += a[j]; //求出大数字的各位数和为sum
}
for(;count2 > 1;count2--) //实现将sum的前几位输出对应汉语拼音,注意最后个位不做处理
{
y = sum / (pow(10,(count2 - 1)));
sum %= (int)pow(10,count2 - 1);
switch(y)
{
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;
}
}
if(count2 == 1) //判断最后一位数的汉语拼音,末无空格键
{
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;
}
写出这个数
最新推荐文章于 2020-12-05 15:46:17 发布