第1个回答 推荐于2016-12-01
#include "stdio.h"
int main(int argc, char* argv[])
{
char sound[10][5]={"yi","er","san","si","wu","liu","qi","ba","jiu","shi"
};
int x,y;
printf("请输入数值(1-99):");
scanf("%d",&x);
if(x<1||x>99)
printf("ERROR!超出范围。\n");
else if(x<10)
printf("%s\n",sound[x-1]);
else if(x==10)
printf("%s\n",sound[9]);
else if(x%10==0)
{y=x/10;
printf("%s-%s\n",sound[y-1],sound[9]);}
else
{ y=x/10;
x=x-y*10;
printf("%s-%s-%s\n",sound[y-1],sound[9],sound[x-1]);
}
return 0;
}本回答被提问者采纳
第2个回答 2007-06-17
定义一个字符串数组
char sound[10][5]={lin-,yi-,...}
对于小于10数很好处理,我就不说了
将大于10的数可以分解成两个数
十位数是num%10,个位数是num/10,
输出相应位置的字符串就行了
最后要打印多全'\b',后退一格以消除多余的一个'-'
相信说了这些LZ你应该会写了>_<
------------------------------------------
#include<stdio.h>
int main()
{
char sound[10][8]={"lin-", "yi-", "er-", "shan-", "si-", "wu-", "liu-", "qi-", "ba-", "jiu-"} ;
int num;
printf("please input a num (1~99)\n");
scanf("%d", &num);
if(num < 1 || num >99)
{
printf("error input\n");
return 0;
}
if(num > 9)//大于10的数
{
printf("%sshi-", sound[num/10]);
}
printf("%s\b \n", sound[num%10]);//小于10的数
return 1;
}