7-25 念数字

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 }

原文地址:https://www.cnblogs.com/zengguoqiang/p/8328573.html