寒假作业二编程总结
7-1 幣值轉(zhuǎn)換 (20 分)
輸入一個整數(shù)(位數(shù)不超過9位)代表一個人民幣值(單位為元),請轉(zhuǎn)換成財務(wù)要求的大寫中文格式。如23108元,轉(zhuǎn)換后變成“貳萬叁仟壹百零捌”元。為了簡化輸出,用小寫英文字母a-j順序代表大寫數(shù)字0-9,用S、B、Q、W、Y分別代表拾、百、仟、萬、億。于是23108元應(yīng)被轉(zhuǎn)換輸出為“cWdQbBai”元。
輸入格式:
輸入在一行中給出一個不超過9位的非負(fù)整數(shù)。
輸出格式:
在一行中輸出轉(zhuǎn)換后的結(jié)果。注意“零”的用法必須符合中文習(xí)慣。
輸入樣例1:
813227345
輸出樣例1:
iYbQdBcScWhQdBeSf
輸入樣例2:
6900
輸出樣例2:
gQjB
1、實驗代碼:
#include<stdio.h>
#include<math.h>
int n,s=0;
int main(void){
?int i,j,k,p=1,flag=1;
?int f(int q,int n);
?scanf("%d",&n);
?
?for(i=0;n/p>=10;i++){
??p=pow(10,i);
??s++;
?}
?if(n==0)
?? printf("a");
?if(n<10&&n>=0)
? s=1;
?for(j=1;j<=s;j++){
??switch(f(j,n)){
???case 0:if(j!=s&&j!=s-4){
????if(f(j+1,n)==0)
?????? flag=0;
????else
?????? flag=1;
????if(flag)printf("a");break;
????};break;
???case 1:printf("b");break;
???case 2:printf("c");break;
???case 3:printf("d");break;
???case 4:printf("e");break;
???case 5:printf("f");break;
???case 6:printf("g");break;
???case 7:printf("h");break;
???case 8:printf("i");break;
???case 9:printf("j");break;
??}
??if(f(j,n)==0&&j!=s&&j!=s-4)?
??? continue;
??else{
???if(s==9&&j==5){
????if(f(2,n)==0&&f(3,n)==0&&f(4,n)==0&&f(5,n)==0)
????continue;
???}
??switch(s-j){
???case 1:printf("S");break;
???case 2:printf("B");break;
???case 3:printf("Q");break;
???case 4:printf("W");break;
???case 5:printf("S");break;
???case 6:printf("B");break;
???case 7:printf("Q");break;
???case 8:printf("Y");break;
??}
?}}?
?return 0;
}
int f(int q,int n)
{
?int k,a;
?if(q==1)?
??? k=n/pow(10,s-1);
?else{
??a=n/pow(10,s-q+1);
??k=n/pow(10,s-q)-a*10;
?}
?return k;
}
2、設(shè)計思路
第一步:先判斷n的位數(shù),在利用for語句來判斷每個位數(shù)上的數(shù)字
第二步:在根據(jù)題意用字母來表示輸出就好了。
3、運行截圖:
?
轉(zhuǎn)載于:https://www.cnblogs.com/caoe666/p/10412547.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 265. To B 端 Web 页面上线
- 下一篇: 【Android】RxJava的使用(一