1. 程式人生 > >ACM天梯賽練習L1-007. 念數字

ACM天梯賽練習L1-007. 念數字

輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出“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
程式碼比較清晰,寫了一個輸出讀音的函式,根據數字呼叫就行了,其次注意對第一個字元進行負號判斷,沒有什麼難度,上程式碼:
#include <stdio.h>
#include <stdlib.h>

void printNum(char c){
	if(c=='0'){
		printf("ling");
	}else if(c=='1'){
		printf("yi");
	}else if(c=='2'){
		printf("er");
	}else if(c=='3'){
		printf("san");
	}else if(c=='4'){
		printf("si");
	}else if(c=='5'){
		printf("wu");
	}else if(c=='6'){
		printf("liu");
	}else if(c=='7'){
		printf("qi");
	}else if(c=='8'){
		printf("ba");
	}else if(c=='9'){
		printf("jiu");
	}
}
int main(int argc, char *argv[]) {
	char a[20];
	int i,k=0;
	while(scanf("%s",a)!=EOF){
		i = 0;
		if(a[0]=='-'){
			printf("fu");
			k = 1;
			i = 1;
		}
		for(; i < strlen(a);i++){
			if(k){
				printf(" ");
				printNum(a[i]);
			}else{
				k = 1;
				printNum(a[i]);
			}	
		}
		printf("\n");
	}
	return 0;
}