c语言,贪心算法
2. 独木舟上的旅行:请写一个程序,读入独木舟的最大承载量、旅客的数目和每位旅客的重量。根据给出的规则,计算要安置所以旅客所必须的最少的独木舟条数。规则:1。独木舟只能坐2人
2.乘客总重量不能超过独木舟的最大承载量
自己输入最大承载量和旅客数。
/* 考虑体重实际情况 */ #include <stdio.h> #define N 10 void sort ( float a[], int n) { int i, j; float temp; for ( i = 0; i < n -1; i ++) for ( j = 0; j < n - i -1; j++) if ( a[j] > a[j + 1] ) temp = a[j], a[j] = a[j + 1], a[j + 1] =temp; } main () { float a[N], zz; int i, j, count = 0; printf ("Please input weights:"); for ( i = 0; i < N; i ++) scanf ("%f",&a[i]); sort ( a, N); printf ("Input max weight:"); scanf("%f",&zz); for ( i = 0, j = N -1; i <= j; )/* 将最小体重与最大匹配,判断其是否符合条件,否则将最小与次大比较 */ if ( a[i] + a[j] <= zz) {++ count; ++ i; -- j;} else {++ count; -- j;} printf ("Need: %d\t",count); getch (); return 0; }