这个题思路还是比较好想的,
1主要是输出坑了我一段时间,
2在使用sort函数的时候没有注意自己是从1开始计数的时候也出现了bug。
# include<iostream>
# include<algorithm>
# include<string.h>
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 %d\n", ++kase);
printf("Water level is %.2lf meters.\n", end);
printf("%.2lf", z);
cout << " percent of the region is under water." << endl<<endl;
}
return 0;
}