C语言 念数字 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 念数字 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字相关的知识,希望对你有一定的参考价值。
无法输出除0外的数字拼音,程序如下:
#include <stdio.h>
int main()
int n,i=0; char a[11];
scanf("%d",&n);
if(n<0)
printf("fu ");
n=-n;
getchar();
if(n==0)
printf("ling");
else
a[i]=getchar();
while(a[i]!='\n')
switch(a[i])
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;
i++;
a[i]=getchar();
if(a[i]!='\n')
printf(" ");
求大佬指点
你的程序有很多不对的地方,没必要用数组,多次的getchar();也不知道是干啥的,我写一个程序贴给你看看吧,有问题再问。
#include<stdio.h>
void judge_num(int num);
void split_num(int num);
int main()
int num=0;
printf("请输入一个整数:");
scanf("%d",&num);
if(num<0)
printf("fu ");
num=-num;
split_num(num);
printf("\\n");
return 0;
void judge_num(int num)
switch(num)
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;
void split_num(int num)
int n;
if((n=num/10)!=0)
split_num(n);
judge_num(num%10);
参考技术A 你的a字符串只有一个回车字符,你的输入在整型n里面保存着呢,你可以一开始就扫进a里面(用gets或者%s),还可以吧n用算法赋进啊里面不懂可以追问鸭。。。
在你的基础上改的
#include <stdio.h>
int main()
int n,i=0; char a[11];
scanf("%s",a);
if(a[0]=='-')
printf("fu ");
if(a[0]==0)
printf("ling");
else
while(a[i]!='\0')
switch(a[i])
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;
i++;
if(a[i]!='\0'&&a[i-1]!='-')
printf(" ");
参考技术B #include <stdio.h>
int main()
int i=0; char a[11];
scanf("%s",a);
while(a[i]!='\0')
switch(a[i])
case '-':printf("fu");break;
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;
i++;
if(a[i]!='\0')
printf(" ");
参考技术C
前面输入的n有什么用?
#include <stdio.h>
int main()
int n,i=0;
char c;
c=getchar();
while(c!='\\n')
while(c!='\\n')
switch(c)
case '-':
printf("fu");break;
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;
c=getchar();
if(c!='\\n')
printf(" ");
printf("\\n");
c=getchar();
以上是关于C语言 念数字 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字的主要内容,如果未能解决你的问题,请参考以下文章