从键盘输入一个1~99之间的整数,要求输出该数字的发音(用拼音表示)如:输入56,应输出 wu-shi-liu

明天C语言要交了,怎么办啊,急!!!!!

第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;
}
第3个回答  2007-06-17
我是初学者,错了别笑,大家探讨吧!

Function 单数字输出拼音(int i)
{
//case 对应数字,判断输出1-9的拼音,返回对应函数值
}
main()
{
int x;
x=输入数字;
if 输入数据不合法 {printf错误提示}
else
if 输入数是1位 {printf(单数字输出拼音(x))}
else
if 十位数是0 {printf(单数字输出拼音(个位)&"-shi")}
else {printf(单数字输出拼音(个位)&"-shi-" & 单数字输出拼音(十位))}

}
第4个回答  2007-06-17
花钱请高手,这哪有会的
相似回答