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 }