C语言作业5(24页).doc
《C语言作业5(24页).doc》由会员分享,可在线阅读,更多相关《C语言作业5(24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言作业5-第 24 页28 组成最大数任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。输入: 自然数 n 输出: 各位数字组成的最大数 测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 1593以文本方式显示 1. 95311秒 64M 0 #include#includeint main()char a10000;int x10=0;scanf(%s,a);int n=strlen(a);for(int i=0;i=0;i-)for(int j=0;jxi;j+)printf(%d,i);printf(n)
2、;29 北理工的恶龙背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数 杀死恶龙,于是找到你寻求帮助。输入:第一行 龙头数 n , 勇士人数 m ( 1=n, m=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l输出:如果勇
3、士们能完成任务,输出校长需要花的最小费用;否则输 出 “ bit is doomed! ” 测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 23 2. 5 3. 4 4. 7 5. 8 6. 4以文本方式显示 1. 111秒 64M 0 测试用例 2以文本方式显示 1. 21 2. 5 3. 5 4. 10以文本方式显示 1. bitisdoomed!1秒 64M 0 #includeint main()int dragon,hero;scanf(%d%d,&dragon,&hero);int dragonhead100=0;int herohight100=0;/
4、inputfor(int i=0;idragon;i+)scanf(%d,&dragonheadi);for(int i=0;ihero;i+)scanf(%d,&herohighti);/make the date in orderint temp;for(int i=0;idragon;i+)for(int j=0;jdragonheadj+1)temp=dragonheadj;dragonheadj=dragonheadj+1;dragonheadj+1=temp;for(int i=0;ihero;i+)for(int j=0;jherohightj+1)temp=herohightj
5、;herohightj=herohightj+1;herohightj+1=temp;/arrange hero to kill the dragonint start=0;for(int i=0;idragon;i+)for(int j=start;j=dragonheadi)dragonheadi=0;start+;break;elseherohightj=0;start+;if (starthero)break;for(int i=start;ihero;i+)herohighti=0;/caculate the gradeint sd=0;int sh=0;for(int i=0;id
6、ragon;i+)sd=sd+dragonheadi;for(int i=0;ihero;i+)sh=sh+herohighti;if(sd=0)printf(%dn,sh);elseprintf(bit is doomed!n);31 合并字符串输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到 大排列。输入: 两个已经排好顺序(升序)的两个字符串输出: 一个合并在一起的有序(升序)的字符串要求: 设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行排序的算法,则效率太低了。测试输入期待的输出时间限制
7、内存限制额外进程测试用例 1以文本方式显示 1. abcdef 2. bcefghi以文本方式显示 1. abbccdeeffghi1秒 64M 0 测试用例 2以文本方式显示 1. 123456 2. 789以文本方式显示 1. 1234567891秒 64M 0 测试用例 3以文本方式显示 1. 789 2. 12345以文本方式显示 1. 123457891秒 64M 0 测试用例 4以文本方式显示 1. 123456 2. 123456以文本方式显示 1. 1秒 64M 0 测试用例 5以文本方式显示 1. 123456 2. 以文本方式显示 1. 1234561秒 64M 0 测试用
8、例 6以文本方式显示 1. 2. 123456以文本方式显示 1. 1234561秒 64M 0 #includeint main()char a50,b50;gets(a);gets(b);char *p1;p1=&a0;char *p2;p2=&b0;for(;1;)if(*p1=0)printf(%s,p2);break;if(*p2=0)printf(%s,p1);break;if(*p1*p2)printf(%c,*p2);p2+;elseprintf(%c,*p1);p1+;printf(n);32 串的减法输入字符串s和t(串长不超过80个字符),将在字符串s中出现,但未在字符串
9、t中出现的字符组成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符,输出u。 例如:当s=112345,t=2467时,u=1135。输入:第一行为串s第二行为串t输出: 串u测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 112345 2. 2467以文本方式显示 1. 11351秒 64M 0 #include#includeint main()char a80;char b80;gets(a);gets(b);int l=strlen(a);for(int i=0;bi!=0;i+)for(int j=0;jl;j+)if(aj=bi)
10、aj=0;for(int k=0;kl;k+)if(ak!=0)printf(%c,ak);printf(n);H9:五年级小学生的题目(选做)那两个小朋友在不断进步,他们已经学会了负数和多位数,于是他们又开始进行游戏了。小明给出一堆整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。输入: 用逗号分隔的整数序列,及其运算符和等号输出: 最大数 op 最小数=结果说明:本题目应该可以不使用数组就可以完成,关键是如何处理负数和减法。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 1,10,
11、100,+,=以文本方式显示 1. 100+1=1011秒 64M 0 测试用例 2以文本方式显示 1. -100,-1,1,100,+,=以文本方式显示 1. 100+(-100)=01秒 64M 0 测试用例 3以文本方式显示 1. -20,-10,0,10,20,*,=以文本方式显示 1. 20*(-20)=-4001秒 64M 0 #include#includeint intpow(int a,int b)/abint result=1;for(int i=0;ib;i+)result=result*a;return result;struct dateint max;int min
12、;char op;int r;struct date function(char p,int n)struct date result;n=n-4;int max=-10000;int min=10000;int count=0;/need back to 0int x10=0;/need back to 0int temp=0;/need back to 0int sign=1;/need back to 1for(int i=0;i=n;i+)if (pi=,)/meet , means end caculate the value and compare with max and min
13、for(int k=0;kmax) max=temp;if(tempmin) min=temp;count=0;temp=0;sign=1;continue;if(pi=-)sign=-1;continue;elsexcount=pi-0;count+;char opp;opp=pn+1;if(opp=+) result.r=max+min;result.op=+; else if(opp=-) result.r=max-min;result.op=-; else if(opp=*) result.r=max*min;result.op=*; else if(opp=/) if(min=0)r
14、esult.r=0;elseresult.r=max/min;result.op=/; else if(opp=%) result.r=max%min;result.op=%;result.max=max;result.min=min;return result;int main()char w100;gets(w);int l=strlen(w);struct date cc=function(w,l);if(cc.op=/&cc.min=0)printf(Error!);else if(cc.max0)printf(%d),cc.max);elseprintf(%d,cc.max);pri
15、ntf( %c ,cc.op);if(cc.min0)printf(%d),cc.min);elseprintf(%d,cc.min);printf( = );printf(%d,cc.r);printf(n);H10:扫雷(选做)背景 你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机会在地图上显示一些数字从而帮助你确定哪里有地雷。例如,在下面这个有两颗地雷的 4x4 的地图(*表示地雷): 根据上面的地图,可以计算出应该提供给游戏者的数字如下所示: *10022101*101110 每个
16、数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。 输入 输入中将包括一系列的地图,每个地图的第一行有两个整数 n 和 m(0 n,m = 100),它们表示了地图的行数和列数。下面的 n 行每行都有 m 个字符,其中 . 表示安全而 * 表示地雷。如果地图的 n 和 m 都为 0,则表示输入结束。 输出 针对每一个地图,首先输出一行: Field #x:其中 x 是当前地图的编号(从 1 开始)。下面的 n 行则将地图中的 . 以数字表示,该数字表示该方格周围有多少颗地雷。 来源测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 44 2.
17、*. 3. . 4. .*. 5. . 6. 35 7. *. 8. . 9. .*. 10. 00以文本方式显示 1. Field#1: 2. *100 3. 2210 4. 1*10 5. 1110 6. 7. Field#2: 8. *100 9. 33200 10. 1*1001秒 64M 0 测试用例 2以文本方式显示 1. 33 2. . 3. . 4. . 5. 33 6. * 7. * 8. * 9. 00以文本方式显示 1. Field#1: 2. 000 3. 000 4. 000 5. 6. Field#2: 7. * 8. * 9. *1秒 64M 0 #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 24
限制150内