解题思路:
注意事项:
参考代码:
#include<stdio.h>
void shu(int x) //定义数字输出拼音
{
if(x==1)printf("yi ");
else if(x==2)printf("er ");
else if(x==3)printf("san ");
else if(x==4)printf("si ");
else if(x==5)printf("wu ");
else if(x==6)printf("liu ");
else if(x==7)printf("qi ");
else if(x==8)printf("ba ");
else if(x==9)printf("jiu ");
}
void siwei(int n) // 00亿 0000 万0000 按四位四位定义,都是千,百,十
{
int a,b,c,d;
a=n/1000;b=(n/100)%10;c=(n/10)%10;d=n%10;
if(a!=0)
{
shu(a);
printf("qian ");
}
else if(b!=0||c!=0||d!=0)
{
printf("ling ");
}
if(b!=0)
{
shu(b);
printf("bai ");
}
else if(a!=0&&(c!=0||d!=0))
{
printf("ling ");
}
if(c!=0)
{
shu(c);
printf("shi ");
}
else if(b!=0&&d!=0)
{
printf("ling ");
}
shu(d);
}
void qianwei(int n) // 00 亿 0000 万 0000 大于一亿或小于一亿大于一万或小于一万, // 前面几位数要单独做个函数,就是开始的前面几个数单独一个函数
{
int a,b,c,d;
a=n/1000;b=(n/100)%10;c=(n/10)%10;d=n%10;
if(a==0&&b==0&&c==1)
{
printf("shi ");
shu(d);
}
else
{
if(a!=0)
{
shu(a);
printf("qian ");
}
if(b!=0)
{
shu(b);
printf("bai ");
}
else if(a!=0&&(c!=0||d!=0))
{
printf("ling ");
}
if(c!=0)
{
shu(c);
printf("shi ");
}
else if(b!=0&&d!=0)
{
printf("ling ");
}
shu(d);
}
}
int main()
{
int a,b,c,n;
scanf("%d",&n);
a=n/100000000;
b=(n/10000)%10000;
c=n%10000;
if(a!=0)
{
qianwei(a);
printf("yi ");
siwei(b);
if(b!=0)
{
printf("wan ");
}
else if(c>=1000)
{
printf("ling ");
}
siwei(c);
}
else if(b!=0)
{
qianwei(b);
printf("wan ");
siwei(c);
}
else if(c!=0)
{
qianwei(c);
}
else
{
printf("ling");
}
printf("\n");
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复