解题思路:
注意事项:
参考代码:
#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 人评分
A+B for Input-Output Practice (V) (C语言代码)浏览:640 |
简单的a+b (C语言代码)浏览:385 |
C语言训练-求PI* (C语言代码)浏览:638 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
C语言训练-数字母 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:368 |
A+B for Input-Output Practice (C语言代码)浏览:505 |
【偶数求和】 (C语言代码)浏览:460 |
震宇大神的杀毒软件 (C语言代码)浏览:1162 |
1162答案错误,为什么浏览:700 |