PAT1053 住房空置率 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
PAT1053 住房空置率 (20 分)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
心得
這么簡(jiǎn)單的題,做了倆小時(shí)啊。
第一個(gè)小時(shí)用來發(fā)現(xiàn)第前兩個(gè)個(gè)誤解題意的地方,第二個(gè)小時(shí)用來發(fā)現(xiàn)第三個(gè)誤解題意的地方。
一直有兩個(gè)測(cè)試用例不通過,改來改去,最后直接對(duì)比別人的代碼,一行一行改啊。
還是那句話:
仔細(xì)讀題!!!
仔細(xì)讀題!!!
仔細(xì)讀題!!!
這題有幾個(gè)坑,都是讀題不仔細(xì)造成的:
(1) 邊界問題,“超過”,“低于”都是沒有等號(hào)的
(2)“可能空置”和“空置”是互斥的,一個(gè)房子不可能同時(shí)具有這兩種屬性
(3)每一行開頭已經(jīng)給出這一行的總個(gè)數(shù)了,不需要自己判斷、分割數(shù)字
(4)若觀察期超過某給定閾值 D 天,是“觀察期”,不是“可能空置”期!
其實(shí)沒有必要定義class,讀取一個(gè)數(shù)據(jù),就判斷一個(gè)數(shù)據(jù)即可。甚至都不需要數(shù)組。
題目
#include<iostream> using namespace std; class Room { public:double power[1000] = { 0 };double days = 0;int freeDays=0;bool mayFreeRoom = false;bool freeRoom = false; }; int main() {double totalRoom;double minPower;double minDay;cin >> totalRoom >> minPower >> minDay;//輸入Room room[1000];int i,j;int curDay = 0;getchar();//吸收回車for (i = 0; i < totalRoom;i++){cin >> room[i].days;for (j = 0; j < room[i].days; j++){cin >> room[i].power[j];}}//判斷for (i = 0; i < totalRoom; i++){for (j = 0; j < room[i].days; j++){if (room[i].power[j] < minPower){room[i].freeDays++;}}if (room[i].freeDays > room[i].days/2)//可能空閑{if (room[i].days > minDay)//空閑{room[i].freeRoom = true;}else room[i].mayFreeRoom = true;}}//計(jì)算double totalMayFree=0;double totalFree=0;for (i = 0; i < totalRoom; i++){if (room[i].mayFreeRoom == true){totalMayFree++;}if (room[i].freeRoom == true){totalFree++;}}//printf("%.1lf%% %.1lf%%", 100.0*totalMayFree / totalRoom, 100.0*totalFree / totalRoom);printf("%.1lf%% %.1lf%%\n", (double)(totalMayFree / totalRoom) * 100.0, (double)(totalFree / totalRoom) * 100.0);system("pause"); } 超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的PAT1053 住房空置率 (20 分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ cin.putback()输入【
- 下一篇: PAT1054 求平均值 (20 分)【