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;
} 展开
输入:
第一行龙头数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;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询