结构体解决念数字问题
生活随笔
收集整理的這篇文章主要介紹了
结构体解决念数字问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
L1-007 念數(shù)字 (10 分)
輸入一個整數(shù),輸出每個數(shù)字對應(yīng)的拼音。當整數(shù)為負數(shù)時,先輸出fu字。十個數(shù)字對應(yīng)的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
輸入格式:
輸入在一行中給出一個整數(shù),如:1234。
提示:整數(shù)包括負數(shù)、零和正數(shù)。
輸出格式:
在一行中輸出這個整數(shù)對應(yīng)的拼音,每個數(shù)字的拼音之間用空格分開,行末沒有最后的空格。如 yi er san si。
輸入樣例:
-600
輸出樣例:
fu liu ling ling
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;struct sode{
ll bh;
string py; }sodecuan[1001];int main(void)
{sodecuan[0].py="ling";
sodecuan[1].py="yi";
sodecuan[2].py="er";
sodecuan[3].py="san";
sodecuan[4].py="si";
sodecuan[5].py="wu";
sodecuan[6].py="liu";
sodecuan[7].py="qi";
sodecuan[8].py="ba";
sodecuan[9].py="jiu";sodecuan[0].bh='0';
sodecuan[1].bh='1';
sodecuan[2].bh='2';
sodecuan[3].bh='3';
sodecuan[4].bh='4';
sodecuan[5].bh='5';
sodecuan[6].bh='6';
sodecuan[7].bh='7';
sodecuan[8].bh='8';
sodecuan[9].bh='9';string N;
cin>>N;if(N[0]=='-'){
cout<<"fu";
for(int i=1;N[i]!='\0';i++){for(int j=0;j<=9;j++){if(N[i]==sodecuan[j].bh)
cout<<' '<<sodecuan[j].py;
} }}else{
cout<<sodecuan[N[0]-'0'].py;
for(int i=1;N[i]!='\0';i++){ for(int j=0;j<=9;j++){
if(N[i]==sodecuan[j].bh)
cout<<' '<<sodecuan[j].py; }
}
} system("pause");
return 0;}
結(jié)構(gòu)體的思路很簡單但是分類討論的時候煩一些,嫌麻煩可以用字符數(shù)組
#include <iostream>
using namespace std;int main()
{string s[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};string num;cin>>num;/*負數(shù)時*/if(num[0]=='-'){cout<<"fu";for(int i=1;i<num.length();i++){cout<<' '<<s[num[i]-'0'];}}/*非負數(shù)時*/else{cout<<s[num[0]-'0'];for(int i=1;i<num.length();i++){cout<<' '<<s[num[i]-'0'];}}return 0;
}
小細節(jié)是輸出的時候不要最后的空格,那么需要我們改一下慣性思維。把先輸出空格再輸出對應(yīng)的拼音就行?
總結(jié)
以上是生活随笔為你收集整理的结构体解决念数字问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼋头渚太湖绝佳处牌坊在何处
- 下一篇: L1-008 求整数段和 (C++)