注意输出%的时候,printf("%%");需要两个百分号,这是这道题唯一的坑点。
#include <iostream>
#include<cstdio>
using namespace std;
struct room {
int day;//观察天数
double amount[1001];
int low=0;//低于阙值的天数
};
room a[1001];
int maybe=0, sure=0;
int main()
{
int N, D;
double e;
cin >> N >> e >> D;
for (int i = 0; i < N; i++) {
cin >> a[i].day;
for (int j = 0; j < a[i].day; j++) {
cin >> a[i].amount[j];
if (a[i].amount[j] < e)
a[i].low++;
}
if (a[i].day <= D&&a[i].low > a[i].day / 2)
maybe++;
if (a[i].day > D&&a[i].low > a[i].day / 2)
sure++;
}
double d1 = double(maybe) / double(N);
double d2 = double(sure) / double(N);
d1 *= 100;
d2 *= 100;
printf("%.1lf", d1);
printf("%% ");
printf("%.1lf", d2);
printf("%%");
}