C语言 小写数字转换大写汉字0
ewrcfuss2014.02.22浏览143次分享举报
这是一段代码,小数点后的怎么实现?
#include
#define MAX 16
void pos(int n,int m)
{
int x,y;
x = n/4; //用来判断万、亿。。
y = n%4;
if(m !=0)
{
switch(y)
{
case 2:
printf("拾");
break;
case 3:
printf("佰");
break;
case 0:
printf("仟");
break;
}
}
switch(x)
{
case 1:
if (y==1)
{
printf("万");
}
break;
case 2:
if (y==1)
{
printf("亿");
}
break;
}
}
int make(int Flag)
{
if(Flag != 0)
{
printf("零");
Flag = 0;
}
return Flag;
}
void chinese(int m,int p) //m表示数字,p表示在第几位
{
static int flag = 0;
switch(m)
{
case 0:
flag++;
break;
case 1:
flag = make(flag);
printf("壹");
break;
case 2:
flag = make(flag);
printf("贰");
break;
case 3:
flag = make(flag);
printf("叁");
break;
case 4:
flag = make(flag);
printf("肆");
break;
case 5:
flag = make(flag);
printf("伍");
break;
case 6:
flag = make(flag);
printf("陆");
break;
case 7:
flag = make(flag);
printf("柒");
break;
case 8:
flag = make(flag);
printf("捌");
break;
case 9:
flag = make(flag);
printf("玖");
break;
}
if(flag ==1 ||m!=0)
pos(p,m);
}
int main()
{
while(1)
{
char str[MAX];
char ch;
int m,count=0,num=1,len=0;
if ((ch = getchar()) == '.')
while((ch = getchar()) >='0' && ch <='9')
{
str[count] = ch;
count++;
}
m = count;
while(len
{
chinese(str[len]-48,m);
m--;
len++;
}
return 0;
}
}