求高手解答 哪里有问题 C语言

背景:最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟,于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每... 背景:
最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数 杀死恶龙,于是找到你寻求帮助。

输入:
第一行 龙头数 n , 勇士人数 m ( 1<=n, m<=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l

输出:
如果勇士们能完成任务,输出校长需要花的最小费用;否则输 出 “bit is doomed! ”

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例 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 <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{int n,m,i,j,k,l=0,x=0,y=0,z=0,a[100],b[100],c[100];
scanf("%d %d",&n,&m);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(j=0;j<m;j++) scanf("%d",&b[j]);
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{k=a[j];
a[j]=a[j+1];
a[j+1]=k;}
for(i=1;i<m;i++)
for(j=0;j<m-i;j++)
if(b[j]>b[j+1])
{k=b[j];
b[j]=b[j+1];
b[j+1]=k;}
for(i=y;i<n;i++)
for(j=l;j<m;j++)
{if(b[j]>=a[i]) { c[x++]=b[j];l=j+1;y=i+1;}break;}
if(x>=n)
{for(i=0;i<x;i++)
z+=c[i];
printf("%d\n",z);}
else printf("bit is doomed!\n");

system("PAUSE");
return 0;
}
展开
 我来答
NE_Z
推荐于2016-07-28 · TA获得超过1737个赞
知道小有建树答主
回答量:1687
采纳率:55%
帮助的人:583万
展开全部
#include <stdio.h>
#define MAXNUM 100
void userinput(int *a,int *b,int *n,int *m)
{
printf("输入龙头数量和勇士数量\n");
scanf("%d %d",n,m);
int i;
printf("输入%d个龙头直径\n",*n);
for(i=0; i<*n; ++i)
scanf("%d",&a[i]);
printf("输入%d个勇士身高\n",*m);
for(i=0; i<*m; ++i)
scanf("%d",&b[i]);
}
void selectsort(int *a,int alen)
{
int i,j,min,tmp;
for(i=0; i<alen-1; ++i) {
min=i;
for(j=i+1; j<alen; ++j)
if(a[j]<a[min])
min=j;
if(min!=i) {
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}
}
}
int main(void)
{
int dragon[MAXNUM]= {},hero[MAXNUM]= {};
int n,m;
userinput(dragon,hero,&n,&m);
selectsort(dragon,n);
selectsort(hero,m);
int dragon_i=0,hero_i=0;
int score=0;
while(dragon[dragon_i]>0&&hero[hero_i]>0) {
if(dragon[dragon_i]<=hero[hero_i]) {
++dragon_i;
score+=hero[hero_i];
}
++hero_i;
}
if(dragon[dragon_i]==0)
printf("hero win,score=%d\n",score);
else
printf("bit is doomed!\n");
return 0;
}
追问
我那个程序计算机教室有一项过不去  想知道问题出在哪了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式