幫忙一下大大,我不知道為啥麼把這個程式碼打在Dev c++可以,但打在這裡就不行。
最後交出去的時候我按"C",找一下哪裡不對,拜託!!!
#include<stdio.h>
#include<stdlib.h>
void printfnum(int,int);
char num[30];
int h=0;
int number,each=0; //先輸入數字再變成字串,//each是加位數
int main()
{
int a=0,i,w=0,m=0; //m是判斷有幾位數 //h是判對萬&億
while(scanf("%d",&number)!=EOF)
{
itoa(number,num,10);
do{
number=number/10;
if(number>0)
{
m++;
}
else
{
w++;
}
}while(w!=1);
m=m+1; //總共有(m+1)位數
h=m/4;
a=m%4;
if((h==1 && a==0) || (h==2 && a==0))
{
h--;
a=4;
}
//printf("%d %d %d\n",h,a,m);
//確定h,a,m是正確的
for(i=0;i<=m-1;i++)
{
printfnum(i,m);
}
m=0;h=0;w=0;a=0;
printf("\n");
}
return 0;
}
void printfnum(int i,int m)
{
int a=0,b=0; //印出有幾位數
int find=0; //找出連續的零
if(num[i]=='0' && find<1)
{
printf("零");
}
if(num[i]=='1')
{
printf("壹");
}
if(num[i]=='2')
{
printf("貳");
}
if(num[i]=='3')
{
printf("參");
}
if(num[i]=='4')
{
printf("肆");
}
if(num[i]=='5')
{
printf("伍");
}
if(num[i]=='6')
{
printf("陸");
}
if(num[i]=='7')
{
printf("柒");
}
if(num[i]=='8')
{
printf("捌");
}
if(num[i]=='9')
{
printf("玖");
}
a=(m-i-1)%4;
switch(a)
{
case 0:
b=1;
break;
case 1:
printf("拾");
break;
case 2:
printf("佰");
break;
case 3:
printf("仟");
break;
}
//printf("\n\nh=%d\n",h);
if(b==1)
{
switch(h)
{
case 1:
printf("萬");
h--;
break;
case 2:
printf("億");
h--;
break;
}
b=0;
}
}
主要我看到的有兩個問題
1. "//"這種註解方法是C++的標準,C請用"/* */"
2. itoa()非標準