这个题思路还是比较好想的,
1主要是输出坑了我一段时间,
2在使用sort函数的时候没有注意自己是从1开始计数的时候也出现了bug。
# include# include # include using namespace std; int a[10000]; int main(void) { int m, n; double flood; int high; int kase = 0; while ((cin >> m >> n) && (m||n)) { memset(a, 0, sizeof(a)); int num = m * n; for (int i = 1; i <= num; i++) { cin >> high; a[i] = high; } sort(a+1, a + num+1); //for (int i = 1; i <= num; i++) // cout << a[i] << endl; cin >> flood; int x = a[1]; int high_flood=1; int i = 2; int square_change=1; while (flood > 0) { while ((a[i] <= x)&&num>=i) { i++; square_change++; } flood -= (double)(square_change*100); x++; } flood += (double)square_change * 100; double s = flood / 100 / square_change; double end = (double)(x - 1) + s; double z=((double)square_change*100 / num); printf("Region %dn", ++kase); printf("Water level is %.2lf meters.n", end); printf("%.2lf", z); cout << " percent of the region is under water." << endl<



