天天看點

寫出這個數 (PAT)

1.題目描述

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

2.輸入描述:

每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小于10100。

3.輸出描述:

在一行内輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。

4.輸入例子:

5.輸出例子:

yi san wu
           

6.解題思路:

最簡單是思路就是

第一步:将字元串各數字轉換為整數并求和

第二步:将各數之和的每一位單獨存在整數數組中(0需要單獨處理)

第三步:根據數組每個值輸出相對應的拼音(注意空格的輸出)

7.源代碼:

#include<stdio.h>
#include<string.h>
int main()
{
	int i,k=0,sum=0;
	char n[101];		
	scanf("%s",n);
	int len=strlen(n);
	for(i=0;i<len;i++)
		sum+=n[i]-'0';
	int num[5];
	if(sum==0)
		num[k++]=0;
	else
	{
		while(sum)
		{
			num[k++]=sum%10;
			sum=sum/10;
		}
	}
	for(i=k-1;i>=0;i--)
	{
		switch(num[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)
			printf(" ");
	}
	printf("\n");
	return 0;
}
           

繼續閱讀