C语言作业 2.docx
- 文档编号:1540642
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:35
- 大小:31.91KB
C语言作业 2.docx
《C语言作业 2.docx》由会员分享,可在线阅读,更多相关《C语言作业 2.docx(35页珍藏版)》请在冰豆网上搜索。
C语言作业2
28组成最大数
成绩:
10/折扣:
0.8
任意输入一个自然数,输出该自然数的各位数字组成的最大数。
例如,输入1593,则输出为9531。
输入:
自然数n
输出:
各位数字组成的最大数
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例1
以文本方式显示
1.1593↵
以文本方式显示
1.9531↵
1秒
64M
0
#include
#include
intmain(){
chara[10000];
intx[10]={0};
scanf("%s",a);
intn=strlen(a);
for(inti=0;i for(inti=9;i>=0;i--) for(intj=0;j printf("\n"); } 29北理工的恶龙 成绩: 10/折扣: 0.8 背景: 最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟,于是,校长下令召集全校所有勇士杀死这只恶龙。 要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。 而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。 校长想花最少的学分数杀死恶龙,于是找到你寻求帮助。 输入: 第一行龙头数n,勇士人数m(1<=n,m<=100)接下来n行,每行包含一个整数,表示龙头的直径接下来m行,每行包含一个整数,表示勇士的身高l 输出: 如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“bitisdoomed! ” 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例1 以文本方式显示 1.2 3↵ 2.5↵ 3.4↵ 4.7↵ 5.8↵ 6.4↵ 以文本方式显示 1.11↵ 1秒 64M 0 测试用例2 以文本方式显示 1.2 1↵ 2.5↵ 3.5↵ 4.10↵ 以文本方式显示 1.bit is doomed! ↵ 1秒 64M 0 #include intmain() { intdragon,hero; scanf("%d%d",&dragon,&hero); intdragonhead[100]={0}; intherohight[100]={0}; //input for(inti=0;i scanf("%d",&dragonhead[i]); for(inti=0;i scanf("%d",&herohight[i]); //makethedateinorder inttemp; for(inti=0;i { for(intj=0;j { if(dragonhead[j]>dragonhead[j+1]) { temp=dragonhead[j]; dragonhead[j]=dragonhead[j+1]; dragonhead[j+1]=temp; } } } for(inti=0;i { for(intj=0;j { if(herohight[j]>herohight[j+1]) { temp=herohight[j]; herohight[j]=herohight[j+1]; herohight[j+1]=temp; } } } //arrangeherotokillthedragon intstart=0; for(inti=0;i { for(intj=start;j { if(herohight[j]>=dragonhead[i]) { dragonhead[i]=0; start++; break; } else { herohight[j]=0; start++; } } if(start>hero) break; } for(inti=start;i herohight[i]=0; //caculatethegrade intsd=0; intsh=0; for(inti=0;i sd=sd+dragonhead[i]; for(inti=0;i sh=sh+herohight[i]; if(sd==0) printf("%d\n",sh); else printf("bitisdoomed! \n"); } 31合并字符串 成绩: 10/折扣: 0.8 输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。 输入: 两个已经排好顺序(升序)的两个字符串 输出: 一个合并在一起的有序(升序)的字符串 要求: 设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行排序的算法,则效率太低了。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例1 以文本方式显示 1.abcdef↵ 2.bcefghi↵ 以文本方式显示 1.abbccdeeffghi↵ 1秒 64M 0 测试用例2 以文本方式显示 1.123456↵ 2.789↵ 以文本方式显示 1.123456789↵ 1秒 64M 0 测试用例3 以文本方式显示 1.789↵ 2.12345↵ 以文本方式显示 1.↵ 1秒 64M 0 测试用例4 以文本方式显示 1.123456↵ 2.123456↵ 以文本方式显示 1.112233445566↵ 1秒 64M 0 测试用例5 以文本方式显示 1.123456↵ 2.↵ 以文本方式显示 1.123456↵ 1秒 64M 0 测试用例6 以文本方式显示 1.↵ 2.123456↵ 以文本方式显示 1.123456↵ 1秒 64M 0 #include intmain() { chara[50],b[50]; gets(a); gets(b); char*p1; p1=&a[0]; char*p2; p2=&b[0]; for(;1;) { if(*p1=='\0') { printf("%s",p2); break; } if(*p2=='\0') { printf("%s",p1); break; } if(*p1>*p2) { printf("%c",*p2); p2++; } else { printf("%c",*p1); p1++; } } printf("\n"); } 32串的减法 成绩: 10/折扣: 0.8 输入字符串s和t(串长不超过80个字符),将在字符串s中出现,但未在字符串t中出现的字符组成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符,输出u。 例如: 当s="112345",t="2467"时,u="1135"。 输入: 第一行为串s 第二行为串t 输出: 串u 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例1 以文本方式显示 1.112345↵ 2.2467↵ 以文本方式显示 1.1135↵ 1秒 64M 0 #include #include intmain() { chara[80]; charb[80]; gets(a); gets(b); intl=strlen(a); for(inti=0;b[i]! ='\0';i++) { for(intj=0;j if(a[j]==b[i]) a[j]='\0'; } for(intk=0;k if(a[k]! ='\0') printf("%c",a[k]); printf("\n"); } H9: 五年级小学生的题目(选做) 成绩: 5/折扣: 0.8 那两个小朋友在不断进步,他们已经学会了负数和多位数,于是他们又开始进行游戏了。 小明给出一堆整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。 输入: 用逗号分隔的整数序列,及其运算符和等号 输出: 最大数op最小数=结果 说明: 本题目应该可以不使用数组就可以完成,关键是如何处理负数和减法。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例1 以文本方式显示 1.1,10,100,+,=↵ 以文本方式显示 1.100 + 1 = 101↵ 1秒 64M 0 测试用例2 以文本方式显示 1.-100,-1,1,100,+,=↵ 以文本方式显示 1.100 + (-100) = 0↵ 1秒 64M 0 测试用例3 以文本方式显示 1.-20,-10,0,10,20,*,=↵ 以文本方式显示 1.20 * (-20) = -400↵ 1秒 64M 0 #include #include intintpow(inta,intb)//a^b { intresult=1; for(inti=0;i result=result*a; returnresult; } structdate { intmax; intmin; charop; intr; }; structdatefunction(charp[],intn) { structdateresult; n=n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言作业 语言 作业