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字的主要内容,如果未能解决你的问题,请参考以下文章

L1-007 念数字 (10分)

L1-007. 念数字

L1-007. 念数字

L1-007. 念数字

题解PTA团体程序设计天梯赛L1-007 念数字 (10 分) Go语言|Golang

L1-007. 念数字