這是Zerojudge上的一個題目,雖然放在基礎題庫的前面,但真的超難,我可是想了三天才得出解法....
中文對於省略數字的規則頗複雜,以至於在判定輸出內容上會有困難(抹臉
例如「10050000」=一千零五萬,省略了一堆零和單位....
跟之前一樣附上的執行檔載點:https://atifans.net/download/code/chinese_number_converter.rar
//存取所需函式庫 #include <stdio.h> //主程式 int main(){ //定義變數 char* table[] = {"零","壹","貳","參","肆","伍","陸","柒","捌","玖"}; //用陣列陣列儲存大型字元(BIG5) char* tablu[] = {"","拾","佰","仟","萬","拾","佰","仟","億","拾"}; char input[10]; int a,b,c,d,e,digit; printf("////中文大寫轉換器 by ATi////\n\n 注意:「輸入的阿拉伯數字上限十位數,離開程式請按Ctrl+C」\n\n"); //主迴圈 while(1){ printf("阿拉伯數字:"); scanf("%s",input); printf("中文大寫:"); //檢查位數長度 for(a=0; a<10; a++){ if((int)input[a]==0){ digit = a; break; }else if(a==9 && (int)input[a]!=0){ digit = 10; break; } } //初始化紀錄變數 d = 0; e = 0; //判定輸出內容 for(b=digit;b>0;b--){ c = ((int)input[(digit-b)]) - 48; //將字元轉換成ASCII整數才能運算 if(c!=0){ if(d!=0){ printf("%s",table[0]); d = 0; } printf("%s%s",table[c],tablu[(b-1)]); e = 1; }else{ d = 1; if(e!=0 && b==9){ printf("%s",tablu[(b-1)]); e = 0; d = 0; }else if(e!=0 && b==5){ printf("%s",tablu[(b-1)]); e = 0; d = 0; } } } printf("\n\n"); } return 0; }
題號是?
話說 要怎麼在你的網誌使用頭像啊?
@NiwaSho Lin
題號:a008
頭像的話,你到Gravatar去用信箱綁圖片就可以了
Gravatar在很多地方都用的到,連EA的Battlelog也不例外(汗
感謝您。