求一个C语言程序的实现.输入任意数字能对应显示中文的大写.比如输入1就显示壹.输入11就显示壹拾壹.

求一个C语言程序的实现.输入任意数字能对应显示中文的大写.比如输入1就显示壹.输入11就显示壹拾壹22就显示贰拾贰

我来帮你写吧!好,听见你说可以了!好久没有写了,不知道还能写好不!经过一段时间,写出来了(我这个是直到亿就不能了,而且是整数,我想带小数你自己就可以搞定了吧),拿到机子上试试,还真能实现你那功能,就是有点麻烦。这个程序我自己看着就想笑!其实还有一些系统函数忘了!要不然就更快了!
#include<stdio.h>

void display(int a) //专门显示这些字的
{
switch(a)
{
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;
}
}

void fenli(int x) //这个是把这个数各个位分离的子程序
{
int yi,qw,bw,sw,w,q,b,s,g;
yi=x/100000000;
qw=x%100000000/10000000;//千万位
bw=x%10000000/1000000;
sw=x%1000000/100000;
w=x%100000/10000;
q=x%10000/1000;
b=x%1000/100;
s=x%100/10;
g=x%10;

if(yi>0)
{
display(yi);
printf("亿");
}
if(qw>0)
{
display(qw);
printf("仟");
}
if(bw>0)
{
display(bw);
printf("佰");
}
if(sw>0)
{
display(sw);
printf("拾");
}
if(w>0)
{
display(w);
printf("万");
}
if(q>0)
{
display(q);
printf("仟");
}
if(b>0)
{
display(b);
printf("佰");
}
if(s>0)
{
display(s);
printf("拾");
}
display(g);
putchar('\n');
}

void main()
{
int temp;
printf("请输入你要转换的数字\n");
scanf("%d", &temp);
fenli(temp);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-07
你可以用循环对10取余(%10)分离各个位上的数,依次取出“个十百千万……”,将其压如栈中,输出时再弹栈就好了
第2个回答  2011-09-07
253