用C语言编写程序:给你一个三位正整数,输出相应读法的汉语拼音,每个音之间用一个空格间隔。

用C语言编写程序:给你一个三位正整数,输出相应读法的汉语拼音,每个音之间用一个空格间隔。,第1张

#include <mathh>
#include <stdioh>
#include <stringh>
#define MIN(a, b) ((a) < (b)  (a) : (b))
char numpinyin(char buf, unsigned int n)
{
switch (n)
{
case 0: strcpy(buf, "líng"); return buf; break;
case 1: strcpy(buf, "yī"); return buf; break;
case 2: strcpy(buf, "èr"); return buf; break;
case 3: strcpy(buf, "sān"); return buf; break;
case 4: strcpy(buf, "sì"); return buf; break;
case 5: strcpy(buf, "wǔ"); return buf; break;
case 6: strcpy(buf, "liù"); return buf; break;
case 7: strcpy(buf, "qī"); return buf; break;
case 8: strcpy(buf, "bā"); return buf; break;
case 9: strcpy(buf, "jiǔ"); return buf; break;
case 10: strcpy(buf, "shí"); return buf; break;
case 100: strcpy(buf, "bǎi"); return buf; break;
default: return NULL; break;
}
}
int getdigit(unsigned int n, unsigned int d)
{
char str[4] = "";
if (n <= 999)
{
sprintf(str, "%03d", n);
return str[d] - 48;
}
else
return -1;
}
int power(int x, int y)
{
int result = 1, i = 0;
for (; i < y; i ++)
result = x;
return result;
}
int main(void)
{
int n = 0, num = 0, count = 0, i = 0;
char buffer[5] = "";
scanf("%d", &n);
for (; count < MIN(n, 20); count ++)
{
scanf("%d", &num);
if (num > 999)
printf("The number you typed is not a three-digit or smaller integer!\n");
else
{
if (num == 0)
{
numpinyin(buffer, num);
printf("%s\n", buffer);
}
else
{
for (i = 0; i < 3; i ++)
{
if (getdigit(num, i) > 0)
{
if (i == 2 && getdigit(num, 0) != 0 && getdigit(num, 1) == 0)
{
numpinyin(buffer, 0);
printf("%s ", buffer);
}
numpinyin(buffer, getdigit(num, i));
if (i < 2)
printf("%s ", buffer);
else
printf("%s", buffer);
if (i < 2)
{
numpinyin(buffer, power(10, 2 - i));
printf("%s ", buffer);
}
}
}
putchar('\n');
}
}
}
return 0;
}

精心编写代码,实在不易,望采纳,谢谢。。

以上就是关于用C语言编写程序:给你一个三位正整数,输出相应读法汉语拼音,每个音之间用一个空格间隔。全部的内容,包括:用C语言编写程序:给你一个三位正整数,输出相应读法的汉语拼音,每个音之间用一个空格间隔。、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9483602.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存