中M2021春C、Java入门练习第I段——变量、表达式、分支、循环

7-30 念数字 (15 分)

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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

 分析:把所给的数每一位顺序存放在数组中,再循环用switch将数组倒序输出

#include<stdio.h>

int main()
{
	int x, a[100] = { 0 }, i;
	scanf("%d", &x);
	if (x < 0)
	{
		printf("fu ");
		x = -x;
	}
	else if (x == 0)
		printf("ling");
	
	for (i = 1; x != 0; ++i)
	{
		a[i] = x % 10;
		x /= 10;
	}
	while(i>1)
	{
		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;
		}
		if (i != 1)
			printf(" ");
	}
		
	return 0;
}

 

上一篇:PTA 翁恺 7-30 念数字


下一篇:PTA—念数字(C语言)两种方法