7-25 念數字(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
思路:輸入整形,如果為負數輸出Fu,然后先將數字取絕對值,在變為字符串,最后進行循環輸出。
1 #include<stdio.h> 2 #include<string> 3 #include<sstream> 4 #include<iostream> 5 using namespace std; 6 int main() 7 { 8 int n; cin >> n; 9 10 if (n < 0){ //判斷是否輸出FU,並將其變為正數 11 cout << "fu "; 12 n *= -1; 13 } 14 string numb; 15 stringstream ss; //轉換為string類型 16 ss << n; 17 ss >> numb; 18 19 for (int i = 0; i < numb.length(); i++) //循環輸出 20 { 21 switch (numb[i]) 22 { 23 case '0':cout << "ling"; break; 24 case '1':cout << "yi"; break; 25 case '2':cout << "er"; break; 26 case '3':cout << "san"; break; 27 case '4':cout << "si"; break; 28 case '5':cout << "wu"; break; 29 case '6':cout << "liu"; break; 30 case '7':cout << "qi"; break; 31 case '8':cout << "ba"; break; 32 case '9':cout << "jiu"; break; 33 34 } 35 if (i != numb.length() - 1) cout << " "; //行末沒有最后的空格 36 } 37 cout << endl; 38 return 0; 39 }
