#3807: 求救!!!!!!!


alan5566alan (alan)


#include<iostream>
using namespace std;

void ch(int a){
    if(a==0)
        cout << "零";
    else if(a==1)
        cout << "壹";
    else if(a==2)
        cout << "貳";
    else if(a==3)
        cout << "參";
    else if(a==4)
        cout << "肆";
    else if(a==5)
        cout << "伍";
    else if(a==6)
        cout << "陸";
    else if(a==7)
        cout << "柒";
    else if(a==8)
        cout << "捌";
    else if(a==9)
        cout << "玖";
}

void ct(int a){
    if(a==1)
        cout << "拾";
    else if(a==2)
        cout << "佰";
    else if(a==3)
        cout << "仟";
    else if(a==4)
        cout << "";
    else if(a==5)
        cout << "拾";
    else if(a==6)
        cout << "佰";
    else if(a==7)
        cout << "仟";
    else if(a==8)
        cout << "";
    else if(a==9)
        cout << "拾";
}

void cz(int a){
    if(a==4)
        cout << "萬";
    else if(a==8)
        cout << "億";
}

int main(){
    char n[11]={0};
    while(cin >> n){
        int length,zlength;
        for(int i=0;;i++)
            if(n[i]==0){
                length=i;
                break;
            }
        for(int i=0;i<length;i++)
            if(n[length-i-1]!='0'){
                zlength=i;
                break;
            }
        for(int i=0;i<length;i++){
            if(i==length-1&n[i]=='0')
                break;
            if(n[i]!='0'){
                ch(n[i]-48);
                ct(length-i-1);
            }
            cz(length-i-1);
            if(n[i]=='0'&n[i-1]!='0' & i<length-zlength){
                ch(0);
            }
        }
        cout << endl;
    }
}
---------------------------------------------------------------------

輸入 1000000001(十億零一)  會跑出 臺拾億"零萬"臺

應該沒有零萬的

小弟不懂求解!!!!!

 

 

#4035: Re:求救!!!!!!!


peng571 (^^)


-----------------------------------------------------------------

輸入 1000000001(十億零一)  會跑出 臺拾億"零萬"臺

應該沒有零萬的

 
 你的cz()沒有用條件避開
所以只要輸入值的長度大於5
不管是否為0
就會把 "萬" 給印出來了
 
稍微給一下吧