C语言作业5.docx

上传人:b****2 文档编号:1605197 上传时间:2022-10-23 格式:DOCX 页数:35 大小:31.72KB
下载 相关 举报
C语言作业5.docx_第1页
第1页 / 共35页
C语言作业5.docx_第2页
第2页 / 共35页
C语言作业5.docx_第3页
第3页 / 共35页
C语言作业5.docx_第4页
第4页 / 共35页
C语言作业5.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

C语言作业5.docx

《C语言作业5.docx》由会员分享,可在线阅读,更多相关《C语言作业5.docx(35页珍藏版)》请在冰豆网上搜索。

C语言作业5.docx

C语言作业5

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.9↵

1秒

64M

0

测试用例3

以文本方式显示

1.789↵

2.12345↵

以文本方式显示

1.↵

1秒

64M

0

测试用例4

以文本方式显示

1.123456↵

2.123456↵

以文本方式显示

1.1↵

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-4;

intmax=-10000;

int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1