本人自己的c比较差,很多想法收不能实现,由于时间的要求所以请大家帮我写下哦要求:做一个金额小写转大写的c程序我的思想是:从键盘输入一个数字先求出所输入的数字的位数,得出这个数字是几位数用除以位数的方法求出各个位数的数字,比方说,一个3位数就除以100取出百位的那个数字类推 求出各个位数的数字做个赋值语句例如 1=中文的“壹”然后做一个print 上面有 *亿*仟万*百万*拾万*万*仟*佰*拾*元填入说对应的* ,没有值的用零补充貌似要用到指针,在最后的print引用指针填充数据,最后打印出来大家帮我写写哦小弟在这里先谢过咯!~我能看得懂逻辑和思想 代码也看的懂就是不会写 呵呵帮帮我吧 我已经工作了啊 现在不是学生,现在在恶补程序
举手之劳,帮你弄了。小可贵在钓,不在鱼。一个完整的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();}
前面如何来获取每位的数字很好做了,就不说了说下我是如何设计实现你要打印的功能你可以定义一个数组来存放你的每一位数字数组大小由你获得的位数来定,后一个数组则可以确定为10位或者15位,一般公司用的话也涉及不到超过10个亿的项目吧!然后就是动态生成钱的字符串了!对应数组序列号的元素连接!整个一组合就是你想要的了!做不出来的话你就可以挂科重修或者是不学编程了!好运