问题描述
- 求大神教编程,用c语言,没什么基础
- 有四个人夜间过一座独木桥,他们只有一只手电筒.而这座独木桥一次最多允许两人同时通过,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以较慢者的速度为准,四人过桥时间分别是1分、2分、5分和10分.他们四人过完桥最少需要_____分钟.
解决方案
#include
struct person {
char name[10];
int ptime;
};
// 按过桥时间从小到大排序
void Sort(struct person a[]int n) {
int ijk;
struct person aone;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k].ptime > a[j].ptime)
k = j;
}
if(i != k) {
aone = a[k];
a[k] = a[i];
a[i] = aone;
}
}
}
int main() {
struct person a[] = {{""John""1}{""Park""2}{""Mike""5}{""Jodan""10}};
int n = sizeof(a) / sizeof(a[0]);
int ittime = 0;
Sort(an);
for(i = 1; i < n; ++i)
ttime += 2 * a[0].ptime + a[i].ptime;
ttime -= a[0].ptime;
printf( ""共需时间%d: "" ttime);
printf( ""分!n"");
return 0;
}
解决方案二:
printf(""最少时间为%dn"" 10+1+5+1+2);
时间: 2024-10-04 00:31:31