請幫我看看哪裡錯了要修改,感激不盡
我用DEV跑完全正常,但測資說我的答案為壹拾零,正確答案為壹拾
--------------------------------------------------------------------------------
#include<stdio.h>
int main(){
char n[10][4]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
char s[10][4]={"拾","億","仟","佰","拾","萬","仟","佰","拾",""};
int i=9,j,k=0,l=0,num,c[10]={0};
while(scanf("%d",&num)!=EOF){
if(num==0)
printf("零\n");
else{
while(num){
c[i--]=num%10;
num=num/10;
}
for(j=i+1,k=0;j<10;j++,k++){
if(c[j]!=0)
printf("%s%s",n[c[j]],s[j]);
else if(j==1)
printf("%s",s[j]);
else if(j==5&&k<4)
printf("%s",s[j]);
else if(c[j+1]!=0)
printf("%s",n[c[j]]);
}
printf("\n");
i=9;
}
}
return 0;
}
---------------------------------------------------------------------
else if(c[j+1]!=0)
printf("%s",n[c[j]]);
}
printf("\n");
i=9;
}
}
return 0;
}
---------------------------------------------------------------------
好吧 我自行解決了 原來dev的程式碼存成.c和.cpp執行的結果不同 我原來存成.c執行正常,後來改存.cpp執行才發現結果出來和測資的錯誤一樣,但我測資選c不是cpp阿?
我把程式碼稍稍改正了,原來
else if(c[j+1]!=0)
printf("%s",n[c[j]]);
改成
else if(c[j+1]!=0&&j!=9)
printf("%s",n[c[j]]);
尾巴就不會多零了