第一届全国软件大赛北京决赛题及答案

第一届全国软件大赛北京决赛题及答案

ID:11921687

大小:88.50 KB

页数:11页

时间:2018-07-14

第一届全国软件大赛北京决赛题及答案_第1页
第一届全国软件大赛北京决赛题及答案_第2页
第一届全国软件大赛北京决赛题及答案_第3页
第一届全国软件大赛北京决赛题及答案_第4页
第一届全国软件大赛北京决赛题及答案_第5页
资源描述:

《第一届全国软件大赛北京决赛题及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2010全国软件专业人才设计与开发大赛题目决赛试题参考答案1、输入一个十亿以内的正整数人民币,用汉字输出。(41分)/*输入一个十亿以内的正整数人民币,用汉字输出。注意汉字的大小是两个字节,也就是说n个字符的空间只能存n/2个汉字,所以我选用结构体存储汉字,当然也可以用二维字符数组存储。代码写得比较长主要在零的处理上周折了一番,如果代码不便于阅读,可以先把与处理零有关的代码删去。*/方法一:#includestructchina{chard[3];/*之所以数组开3个大小是因为除了汉字还有一个''

2、符*/}num[12]={"","一","二","三","四","五","六","七","八","九"};chinaqian={"千"},bai={"百"},shi={"十"};voidprint(intk)/*处理10000以内的数*/{intzero=0,dou=0;if(k>=1000){intt1=k/1000;printf("%s千",num[t1].d);k=k%1000;zero=1;}if(k>=100){intt1=k/100;printf("%s百",num[t1].d);k=k%100;zero=

3、1;}elseif(zero==1&&k!=0){dou=1;printf("零");}if(k>=10){intt1=k/10;printf("%s十",n#include"stdafx.h"um[t1].d);k=k%10;}elseif(zero==1&&dou==0){if(k!=0)printf("零");}if(k!=0){printf("%s",num[k].d);}}intmain(){intn;while(scanf("%d",&n)==1){intzero=0;if(n==1000000000){p

4、rintf("十亿");continue;}if(n>=100000000){intt=n;t=t/100000000;printf("%s亿",num[t].d);n=n%100000000;zero=1;}if(n>=10000){intt=n;t=t/10000;if(zero==1){if(t/1000==0)printf("零");}print(t);printf("万");n=n%10000;zero=1;}if(zero==1){if(n/1000==0&&n!=0)printf("零");}prin

5、t(n);printf("");}return0;}/*82234123412000012345123440112300102301101123999994120010189000239000000100000000020000000130000002*/方法二://输入一个十亿以内的正整数人民币,用汉字输出//101001:拾万壹仟零壹和100101:拾万零壹佰零壹,以及错误数据001:壹#include"stdafx.h"#include"string.h"voidf(charn){switch(n){case

6、'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;}}voidu(intn){if(n==9)printf("亿"

7、);elseif(n==5)printf("万");elseswitch(n){case2:case6:case10:printf("拾");break;case3:case7:printf("佰");break;case4:case8:printf("仟");break;}}main(){chara[11]="1111111111";//用来存储人民币char*p=a;//gets(a);boolflag1=0;while(*p){if(*p!='0'){flag1=1;break;}p++;}if(flag1==0

8、)printf("零");flag1=0;p=a;while(*p){intw=strlen(a)-(p-a);//记录当前人民币的指针位置从右数第几位if(*p!='0'){if(*p=='1'&&((w==2&&strlen(a)>2)

9、

10、(w==6&&strlen(a)>6)))//判定十位和十万位是否输出壹f(*p);if

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。