C语言问题 将输入数字的转换成中文

求大神~~~谢谢~输入一个0~9999之间的数字,转换成中文输出样例输入3621121261020101样例输出三十六二百一十一二千一百二十六十二十一百零一注意:输入10... 求大神~~~谢谢~
输入一个0~9999之间的数字,转换成中文输出
样例输入
36
211
2126
10
20
101

样例输出
三十六
二百一十一
二千一百二十六

二十
一百零一

注意:输入10,输出应该为十,而不是一十。
展开
 我来答
天涯明远
2019-10-25 · TA获得超过2613个赞
知道答主
回答量:18
采纳率:100%
帮助的人:4736
展开全部

下面是后台代码:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main()

{

    int i=0,count=0;             //计数器

    char nums[10][4]={"壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};

    int money;

    int moneys[5];               //默认可以存储5个数字

    printf("请输入金额:");

    scanf("%d",&money);

   while(money != 0){

        moneys[i] = money % 10;  //取个位数

        money /= 10;             //去掉个位数

        i++;

        count++;

    }

    printf("你输入一共有%d个数字!\n",count);

    for(i=count-1;i>=0;i--){

        printf("%d----%s\n",moneys[i],nums[moneys[i]-1]);

    }

 

    return 0;

}

扩展资料

C语言特点

C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:

其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。

其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。 

其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。

参考资料来源:百度百科-C语言

爱教育爱学习
高粉答主

2019-10-18 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112742

向TA提问 私信TA
展开全部

#include<stdio.h>

intmain()

{

intweekday;

scanf("%d",&weekday);

switch(weekday)

{

case1:printf("Monday\n");break;

case2:printf("Tuesday\n");break;

case3:printf("Wednesday\n");break;

case4:printf("Thursday\n");break;

case5:printf("Friday\n");break;

case6:printf("Saturday\n");break;

case7:printf("Sunday\n");

}

return0;

}

扩展资料

C语言数字钱转大写中文

#include<stdio.h>

#include<string.h>

char *MoneyToChina(double mon)

{

char *f1[] = {

"零",

"壹",

"贰",

"叁",

"肆",

"伍",

"陆",

"柒",

"捌",

"玖"

};

char *f2[] = {

"仟",

"佰",

"拾",

"亿",

"仟",

"佰",

"拾",

"万",

"仟",

"佰",

"拾",

"元",

"角",

"分"

};

char strre[99];

char strbak[99];

char *value;

int len, i, k;

/*此处在原有数字上乘上100主要是为了分析角与分*/

sprintf(strbak, "%.0lf", 100 * mon);

strbak[14] = ''; /*数据的最大值为14位不能大于仟亿*/

len = strlen(strbak);

strre[0] = '';

k = 14 - len;

for (i = 0; i < len; i++)

{

/*strbak[i] - '0'主要是为了获取ASCII码,这要才能获取数组中的值*/

strcat(strre, f1[strbak[i] - '0']);

strcat(strre, f2[k]);

k++;

}

strcat(strre, "整");

value = strre;

return value;

}

int main()

{

double mon;

printf("请输入要转换的金额值:");

scanf("%lf", &mon);

printf("您输入的金额转换后的金额为:< %s > ", MoneyToChina(mon));

}

参考资料来源:百度百科—c语言

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bignode
推荐于2017-09-02 · TA获得超过2664个赞
知道大有可为答主
回答量:1427
采纳率:75%
帮助的人:553万
展开全部
#include <stdio.h>

int main()
{
char dxsz[][4] = {"零","一","二","三","四","五","六","七","捌","玖"};
char dw[][4]  =  {"","拾","佰","仟"};
char wei[4];  //输入数字的每一位数字
int  num,ct;  //输入的数字及位数
int flag;     //输出“零”标志,不连接输出“零”
while(1)
{
scanf("%d",&num);//输入数字

if( num < 0)      //如果是负数,退出程序
break;

if( num > 9999)  //如果超出范围,不处理
continue;

ct = 0;          //计算每一位数,统计总位数
while(num > 0)
{
wei[ct] = num % 10;
num /= 10;
ct++;
}

flag = 0;  ////输出“零”标志复位
for( int i= ct -1; i>=0; i--) //从高位到低位输入
{
if( wei[i] == 1 && i == 1 && ct ==2 ) //如果当前输出十位,且十位为1
printf("%s",dw[i]);    //只输出单位“拾”
else if( wei[i] > 0)       //否则,如果当前位数值大于0,输出数字和单位
printf("%s%s",dxsz[wei[i]],dw[i]),flag = 0; //并且复位输出“零”标志
else if( i > 0 && flag ==0) // 如果不是个位,并且上一输出不是0
printf("%s",dxsz[0]),flag=1; //输出“零”,并设置输出“零”标志
}
printf("\n");
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-04
展开全部
1,先做出来个对应表 0-零 1-一。。。。。10-十
2,判断输入数字多少位
3,遍历每一个数字对应中文
当数是10的时候 单独判断一次就OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clndldymc
2014-12-04 · TA获得超过159个赞
知道答主
回答量:114
采纳率:0%
帮助的人:49.1万
展开全部
四位数字用/和%变成四个单独的数字,然后在用case语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式