帮我写一个c语言的程序,按照我下面的思路写下哦

本人自己的c比较差,很多想法收不能实现,由于时间的要求所以请大家帮我写下哦
要求:做一个金额小写转大写的c程序
我的思想是:
从键盘输入一个数字
先求出所输入的数字的位数,得出这个数字是几位数
用除以位数的方法求出各个位数的数字,比方说,一个3位数就除以100取出百位的那个数字
类推 求出各个位数的数字
做个赋值语句
例如 1=中文的“壹”
然后做一个print 上面有 *亿*仟万*百万*拾万*万*仟*佰*拾*元
填入说对应的* ,没有值的用零补充
貌似要用到指针,在最后的print引用指针填充数据,最后打印出来
大家帮我写写哦
小弟在这里先谢过咯!~
我能看得懂逻辑和思想 代码也看的懂就是不会写 呵呵帮帮我吧 我已经工作了啊 现在不是学生,现在在恶补程序
最新回答
沿途有你

2024-12-02 04:31:21

举手之劳,帮你弄了。小可贵在钓,不在鱼。
一个完整的c程序如下,win-tc和Dev-c++下已运行通过。
#include <stdio.h>
#include <string.h>
#include <conio.h>

char c_je[51]; /*大写金额字符变量*/
char* zh( x ) /*数字金额转换为大写金额子程序*/
double x; /*要转换的金额数*/
{
int i, n, bz;
char je[14]; /*数字金额的字符变量*/
char temp[13];
char f1[10][3] = {"零","壹","贰","叁","肆","伍",
"陆","柒","捌","玖"}; /*数字对应的大写数组变量*/
char f2[11][3] = {"亿","仟","佰","拾","万",
"仟","佰","拾","元","角","分"}; /*每位数字对应单位数组变量*/
sprintf( je, "%.01f", 100*x); /*转换成字符*/
n = strlen( je );
c_je[0] = '\0';
bz = 1;
for( i = 0; i < n; i++ )
{
strcpy( temp, &je[i] ); /*复制到临时数组*/
if( atoi(temp)==0) /*判断第i位后是否全为0*/
{
bz = 2;
break;
}
if( je[i] != '0' )
{
if( bz == 0 )
strcat( c_je, f1[0] );
strcat( c_je, f1[je[i] - '0'] ); /*数字串转化字符串*/
bz = 1;
strcat( c_je, f2[13-n+i]);
}
else
{
if( n-i == 7 && (je[i-1]!='0'||je[i-2]!='0' || je[i-3]!='0')) /*判断万位位置*/
strcat( c_je, "万" );
if( n-i == 3 ) /*判断个位数的元位置*/
strcat( c_je, "元");
bz = 0;
}
}
if( bz == 2 )
{
if( n-i >= 7 && n-i < 10 )
strcat( c_je, "万") ; /*万位数字为0,加‘万’*/
if( n-i >= 3 )
strcat( c_je, "元");
strcat( c_je, "正" ); /*最后不是分位,加“正”*/
}
return c_je; /*返回大写金额*/
}

main()
{
double count;
system("cls");
printf("*********************************************************\n");
printf("* *\n");
printf("* 数字金额转换为大写金额程序 Ver.1.0 *\n");
printf("* *\n");
printf("* By RZLIN *\n");
printf("* *\n");
printf("* 请输入要转换的金额: *\n");
printf("* ");
scanf("%lf", &count );
printf("* 您输入的金额为:%10.2lf *\n",count);
printf("* *\n");
printf("*转换为大写金额是:%s\n", zh( count ) );
printf("* *\n");
puts("* 请按任意键退出... *");
printf("*********************************************************\n");
getch();
}
伤疤像㈠朵鲜花

2024-12-02 12:30:27

前面如何来获取每位的数字很好做了,就不说了
说下我是如何设计实现你要打印的功能
你可以定义一个数组来存放你的每一位数字
数组大小由你获得的位数来定,后一个数组则可以确定为10位或者15位,一般公司用的话也涉及不到超过10个亿的项目吧!然后就是动态生成钱的字符串了!对应数组序列号的元素连接!整个一组合就是你想要的了!做不出来的话你就可以挂科重修或者是不学编程了!好运
浅时光倾城

2024-12-02 12:32:46

你都说你不懂啦,我们写出来你也判断不出谁写得好,写得不好。那又何必为了15分费力写呢?
信上诗两行

2024-12-02 13:13:32

分太少了