| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1939 人关注过本帖
标题:念数字
只看楼主 加入收藏
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:4 
念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234。

提示:整数包括负数、零和正数。

输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。

输入样例:
-600
输出样例:
fu liu ling ling

int main()
{
  int i,num,n,flag=0;
  scanf("%d",&num);
  n=abs(num);
  for(i=1;n>0;i++)
    {n/=10;
    flag++;}
  n=abs(num);
  int a[flag];

  for(i=flag-1;i>=0;i--)
  {
    a[i]=n%10;
    n/=10;
  }
  if(num<0)
    printf("fu ");
  for (i=0;i<flag;i++)
 {
  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;
  default:break;
  }
  if(i<flag-1)
    printf(" ");
 }
}
我这个switch为什么不起作用
搜索更多相关主题的帖子: 数字 printf case break 输出 
2019-12-11 17:21
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:5 
要写成case 0.不要写成case '0' 。case '0'表示字符0

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-11 19:50
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:10 
#include <stdio.h>
#include <stdlib.h>
int main()
{
  int i,num,n,flag=0;
  scanf("%d",&num);
  n=abs(num);
  for(i=1;n>0;i++)
    {n/=10;
     flag++;
    }
  n=abs(num);
  int a[flag];

  for(i=flag-1;i>=0;i--)
  {
    a[i]=n%10;
    n/=10;
  }
  if(num<0)
    printf("fu ");
  for (i=0;i<flag;i++)
 {
  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;
  default:break;
  }
  if(i<flag-1)
    printf(" ");
 }
}
2019-12-11 21:35
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
输入在一行中给出一个整数,如:1234。
提示:整数包括负数、零和正数。
没限定这个整数的取值范围?

#include <stdio.h>

int main( void )
{
    const char* pinyin[13] = { "fu","","","ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
    scanf( " " );
    for( int ch, notfirst=0; ch=getchar(), ch!=EOF&&(ch=='-'||(ch>='0'&&ch<='9')); )
        printf( "%s%s", notfirst++?" ":"", pinyin[ch-'-'] );
    putchar( '\n' );
}

2019-12-12 09:01
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
#include<stdio.h>
int main()
{
    char a[10][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    char ch;
    scanf(" %c",&ch);
    while(1)
    {
        if(ch=='-') printf("fu");
        else printf("%s",a[ch-'0']);
        scanf("%c",&ch);
        if(ch>='0'&&ch<='9') printf(" ");
        else break;
    }
    return 0;
}
2019-12-12 15:54
快速回复:念数字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.525792 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved