請問switch 這樣使用,為什麼在輸出"億"的時候也會輸出"萬"的情況,我的使用方式有錯誤嗎?
請大家指點一下,程式如下:
============================
#include <iostream>
using namespace std;
int main()
{
int i,a=0;
int b[10]={0};
char c[10][3]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
char d[4][3]={"","拾","佰","仟"};
while (cin >>a)
{
for(i=0;i>=0;i++) //由i得知數值為幾位數
{
b[i]=a%10; //取得各個位數的值
a=int(a/10); //降一位
if (a==0) //降至個位後跳出
break;
}
for(;i>=1;i--) //由最高位數遞減輸出
{
if (b[i]||b[i-1]) //輸出零限制
{
cout <<(b[i]||i%4 ? c[b[i]]:""); //各位數輸出(I%4限制零萬(億)
cout <<(b[i]? d[(i%4)]:""); //單位輸出(該位數為零單位不輸出
}
switch (i)
{
case 4:
printf("萬");
break;
case 8:
printf("億");
break;
}
}
if (b[0]!=0) //個位數單獨輸出;
cout <<c[b[0]];
cout <<endl;
}
}
請問switch 這樣使用,為什麼在輸出"億"的時候也會輸出"萬"的情況,我的使用方式有錯誤嗎?
請大家指點一下,程式如下:
char c[10][3]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
char d[4][3]={"","拾","佰","仟"};
{
if (b[i]||b[i-1]) //輸出零限制
{
cout <<(b[i]||i%4 ? c[b[i]]:""); //各位數輸出(I%4限制零萬(億)
cout <<(b[i]? d[(i%4)]:""); //單位輸出(該位數為零單位不輸出
}
switch (i)
{
case 4:
printf("萬");
break;
case 8:
printf("億");
break;
}
}
if (b[0]!=0) //個位數單獨輸出;
cout <<c[b[0]];
cout <<endl;
}
}
輸入 100000000 當i=4的時候
switch也會幫你輸出萬這個字
就會變成 壹億萬了