就是输入800输出捌佰而不是捌零佰零拾,80001输出捌仟零一。目前这个只能翻译部分情况。不知道该怎么改了
#include
int main()
{
char a[8];
int tempt,count=0;
while(1)
{
scanf("%c",&tempt);
if(tempt=='\n')break;
a[count]=tempt;
count++;
}
int i,count_1=count,m=0;
for(i=0;i<=count_1;i++)
{
switch(a[i])
{
case '1':printf("壹");break;
case '2':printf("贰");break;
case '3':printf("叁");break;
case '4':printf("肆");break;
case '5':printf("伍");break;
case '6':printf("陆");break;
case '7':printf("柒");break;
case '8':printf("捌");break;
case '9':printf("玖");break;
}
if(a[i]=='0')
{
if(m==0)
{
printf("零");
m++;count--;
continue;
}
else
{
m--;count--;
continue;
}
}
if (count>4)
{
int b=count-4;
if(b==1)printf("万");
if(b==2)printf("拾");
if(b==3)printf("佰");
if(b==4)printf("仟");
count--;
continue;
}
if(count<=4)
{
switch(count)
{
case 1:printf("元整");break;
case 2:printf("拾");break;
case 3:printf("佰");break;
case 4:printf("仟");break;
}
count--;
}
}
return 0;
}
#include<stdio.h>
int main()
{
char a[8];
int tempt, count = 0;
while (1)
{
scanf("%c", &tempt);
if (tempt == '\n') break;
a[count] = tempt;
count++;
}
int i, count_1 = count, m = 0;
if (count == 1 && a[0] == '0')
{
printf("零元整");
return 0;
}
for (i = 0; i <= count_1; i++)
{
switch (a[i])
{
case '1':
printf("壹");
break;
case '2':
printf("贰");
break;
case '3':
printf("叁");
break;
case '4':
printf("肆");
break;
case '5':
printf("伍");
break;
case '6':
printf("陆");
break;
case '7':
printf("柒");
break;
case '8':
printf("捌");
break;
case '9':
printf("玖");
break;
}
if (a[i] == '0')
{
if (m == 0)
{
printf("零");
m++;
count--;
continue;
}
else
{
m--;
count--;
continue;
}
}
if (count > 4)
{
int b = count - 4;
if (b == 1)
printf("万");
if (b == 2)
printf("拾");
if (b == 3)
printf("佰");
if (b == 4)
printf("仟");
count--;
continue;
}
if (count <= 4)
{
switch (count)
{
case 1:
printf("元整");
break;
case 2:
printf("拾");
break;
case 3:
printf("佰");
break;
case 4:
printf("仟");
break;
}
count--;
}
}
return 0;
}