版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。
本文連結:https://blog.csdn.net/shiliang97/article/details/100126296
1053 住房空置率 (20 分)
在不打擾居民的前提下,統計住房空置率的一種方法是根據每戶用電量的連續變化規律進行判斷。判斷方法如下:
- 在觀察期内,若存在超過一半的日子用電量低于某給定的門檻值 e,則該住房為“可能空置”;
- 若觀察期超過某給定門檻值 D 天,且滿足上一個條件,則該住房為“空置”。
現給定某居民區的住戶用電量資料,請你統計“可能空置”的比率和“空置”比率,即以上兩種狀态的住房占居民區住房總套數的百分比。
輸入格式:
輸入第一行給出正整數 N(≤1000),為居民區住房總套數;正實數 e,即低電量門檻值;正整數 D,即觀察期門檻值。随後 N 行,每行按以下格式給出一套住房的用電量資料:
K E1 E2 ... EK
其中 K 為觀察的天數,Ei 為第 i 天的用電量。
輸出格式:
在一行中輸出“可能空置”的比率和“空置”比率的百分比值,其間以一個空格分隔,保留小數點後 1 位。
輸入樣例:
5 0.5 10
6 0.3 0.4 0.5 0.2 0.8 0.6
10 0.0 0.1 0.2 0.3 0.0 0.8 0.6 0.7 0.0 0.5
5 0.4 0.3 0.5 0.1 0.7
11 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
11 2 2 2 1 1 0.1 1 0.1 0.1 0.1 0.1
複制
輸出樣例:
40.0% 20.0%
複制
(樣例解釋:第2、3戶為“可能空置”,第4戶為“空置”,其他戶不是空置。)
觀察期超過D,不是用電低的天數超過D,了解錯了,查了半天才過
%百分号無法直接輸出要用 %%,同一年考的1052題是\轉義字元無法輸出要改成\\
#include<iostream>
using namespace std;
int main(){
int n;
float e;
int d,f=0,q=0;
cin>>n>>e>>d;
for(int i=0;i<n;i++){
int count=0,o;
float s;
cin>>o;
for(int l=0;l<o;l++){
cin>>s;
if(s<e){
count++;
}
}
if((count)>(o-count)){
if(o>d){
f++;}
else {q++;}
}
}
printf("%.1f%% %.1f%%",q*100.0/n,f*100.0/n);
return 0;
}
複制
看一看柳婼代碼來拯救一下我混亂的邏輯
#include <iostream>
using namespace std;
int main() {
int n, d, k, maybe = 0, must = 0;
double e, temp;
cin >> n >> e >> d;
for (int i = 0; i < n; i++) {
cin >> k;
int sum = 0;
for (int j = 0; j < k; j++) {
cin >> temp;
if (temp < e) sum++;
}
if(sum > (k / 2)) {
k > d ? must++ : maybe++;
}
}
double mayberesult = (double)maybe / n * 100;
double mustresult = (double)must / n * 100;
printf("%.1f%% %.1f%%", mayberesult, mustresult);
return 0;
}
複制