L1-007 念数字 (10 分)
作者:互联网
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int num;
cin>>num;
if(num!=abs(num))
cout<<"fu"<<" ";
num=abs(num);
int length=(int)log10(num)+1;
string figure[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string answer[length];
int i=length-1;
while(num>=10)
{
int trail=num%10;
answer[i]=figure[trail];
num=num/10;
i--;
}
cout<<figure[num];
for(int k=0;k<length;k++)
{
cout<<" "<<answer[k];
}
return 0;
}
不知道为什么总是会多一个空格
第二次
参考
https://blog.csdn.net/mizifor666/article/details/107170591
#include <iostream>
using namespace std;
int main()
{
string s[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};//存放0-9的拼音
string num;//存放录入的数
cin>>num;
/*负数时*/
if(num[0]=='-')
{
cout<<"fu";//先输出‘-’
for(int i=1;i<num.length();i++)
{
cout<<' '<<s[num[i]-'0'];//注意此处将数字字符转化为对应数字
}
}
/*非负数时*/
else
{
cout<<s[num[0]-'0'];//先输出第一个数字
for(int i=1;i<num.length();i++)
{
cout<<' '<<s[num[i]-'0'];//注意此处将数字字符转化为对应数字
}
}
return 0;
}
标签:10,cout,int,num,007,L1,ling,拼音 来源: https://blog.csdn.net/qq_45704263/article/details/121598026