C语言编程题,北理工的恶龙。

一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花最少的学分数杀死恶龙,于是找到你寻求帮助。输... 一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数杀死恶龙,于是找到你寻求帮助。
输入:
第一行龙头数n , 勇士人数m (1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来 m 行,每行包含一个整数,表示勇士的身高 l
输出:
如果勇士们能完成任务,输出校长需要花的最小费用;否则输出 “ bit is doomed! ”
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int dra[100];
int man[100];
int n,m; // n 龙头个数 m 勇士人数
int i,j,k,p,t,s,flag=0;
scanf("%d %d",&n,&m);
for (i=0; i<n; i++) // 给 龙头 按直径大小排序
scanf ("%d", &dra[i]);
for ( i=0; i<n-1; i++ )
{ /* 进行N-1次比较 */
p=i; /* p中记录当前排序过程中最小元素的下标 */
for ( j=i+1; j<n; j++ )
if (dra[p]>dra[j]) p=j; /*若有更小的数则记录下标*/
if ( p != i )
{ t=dra[p]; dra[p]=dra[i]; dra[i]=t; } /* 一次交换到位 */
}
for (i=0; i<m; i++) // 给 勇士 按身高大小排序
scanf ("%d", &man[i]);
for ( i=0; i<m-1; i++ )
{ /* 进行N-1次比较 */
p=i; /* p中记录当前排序过程中最小元素的下标 */
for ( j=i+1; j<m; j++ )
if (man[p]>man[j]) p=j; /*若有更小的数则记录下标*/
if ( p != i )
{ t=man[p]; man[p]=man[i]; man[i]=t; } /* 一次交换到位 */
}
if(n>m) printf("bit is doomed!\n");
else
{
for(j=0,i=0,s=0;i<m;i++)
{
if(dra[j]<=man[i]);
{
s+=man[i];
j++;
}
if(dra[n-1]<=man[i])
{flag=1;break;}
}
if(flag==1)
printf("%d\n",s);
else
printf("bit is doomed!\n");
}
return 0;
}
展开
 我来答
百度网友9bea863
2014-05-17 · 超过20用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:38.8万
展开全部
去年还做过这个题来着
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永远希帅
2014-05-13 · TA获得超过177个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:173万
展开全部
这么多年,都还在编这个,去问问师兄们吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式