C语言高手请进,简单的编程题

是个过桥问题,有四个人,一把电筒,有一座桥,同时最多能够通过两个人,在桥上的人必须有一把手电筒,甲用时10分钟、乙5分钟、丙2分钟、丁1分钟,问在不浪费最快的人过桥速度的... 是个过桥问题,有四个人,一把电筒,有一座桥,同时最多能够通过两个人,在桥上的人必须有一把手电筒,甲用时10分钟、乙5分钟、丙2分钟、丁1分钟,问在不浪费最快的人过桥速度的情况下,最短的过桥时间,要用C语言编程,求各位大虾指点!有高分! 展开
 我来答
wuyuels
2010-04-09 · 超过33用户采纳过TA的回答
知道答主
回答量:193
采纳率:0%
帮助的人:128万
展开全部
#include<stdio.h>
#define N 4

main ()
{
int i,j,t,s,p,time=0,mintime;
int x[N]={10,5,2,1};

for (i=0;i<N-1;i++) /*从大到小排序*/
for (j=i+1;j<N;j++)
if (x[i]<x[j])
{
t=x[i];
x[i]=x[j];
x[j]=t;
}

for (i=0;i<N;i++) /*显示排好的顺序*/
printf("x[%d]=%d\n",i,x[i]);
printf("\n");

p=N/2; /*数组元素的对数*/
s=N%2;

for (j=0;j<p;j++)
{
time=time+x[j];
j++;
}

if (s==0) /*数组元素为偶数个*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1];
else /*数组元素为奇数个*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1]+x[N-3]; /*加上倒数第三个数*/

printf("mintime=%d\n",mintime);

getch();
}
好难找的!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孟徳
2010-04-09 · TA获得超过421个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:248万
展开全部
先2分钟和1分钟的过去,1分钟带着电筒返回
再5分钟和1分钟的过去,1分钟带着电筒返回
再10分钟和1分钟的过去
一共用19分钟,所以程序是

int main()
{
printf("19min\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
muyejingefeng
2010-04-08 · TA获得超过348个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:0
展开全部
构造一个状态集吧。然后搜索花费最少的~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式