我的pat-basic**倉:
題目描述:
知識點:計數
本題和pat-basic1058——選擇題的題幹是一模一樣的。區別在於本題還需要額外統計每道題每個選項的錯誤資訊。因此我們不能像pat-basic1058——選擇題的思路一樣,把正確選項數量和具體的正確選項當作是乙個字串處理,我們必須讀取每乙個正確的選項值。資料錄入方面會有點複雜,但邏輯是簡單明瞭的。
時間複雜度是o(m * n)。空間複雜度是o(m)。
c++**:
#include#includeusing namespace std;
struct question ;
int main()else if(tempchar == 'b')else if(tempchar == 'c')else if(tempchar == 'd')else if(tempchar == 'e')
} questions[i] = tempquestion; }
char tempanswer;
bool tempa;
bool tempb;
bool tempc;
bool tempd;
bool tempe;
double grade;
int countswrong[m][5];
int countstotalwrong = 0;
for(int i = 0; i < m; i++)
} for(int i = 0; i < n; i++)else if(tempanswer == 'b')else if(tempanswer == 'c')else if(tempanswer == 'd')else if(tempanswer == 'e')
}if(j != m - 1)
if(tempa == questions[j].a && tempb == questions[j].b && tempc == questions[j].c
&& tempd == questions[j].d && tempe == questions[j].e)else if((tempa && !questions[j].a) || (tempb && !questions[j].b) || (tempc && !questions[j].c)
|| (tempd && !questions[j].d) || (tempe && !questions[j].e))else
if(tempa != questions[j].a)
if(tempb != questions[j].b)
if(tempc != questions[j].c)
if(tempd != questions[j].d)
if(tempe != questions[j].e)
} getchar();
getchar();
printf("%.1lf\n", grade); }
if(countstotalwrong == 0)
int maxwrong = 0;
for(int i = 0; i < m; i++)
} }for(int i = 0; i < m; i++)
} }}
c++解題報告:
PAT Basic 1073 多選題常見計分法
多選題常見計分法 20 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者chen,yue 批改多選題是比較麻煩的事情,有很多不同的計分方法。有一種最常見的計分方法是 如果考生選擇了部分正確選項,並且沒有選擇任何錯誤選項,則得到50 分數 ...
1073 多選題常見計分法
批改多選題是比較麻煩的事情,有很多不同的計分方法。有一種最常見的計分方法是 如果考生選擇了部分正確選項,並且沒有選擇任何錯誤選項,則得到50 分數 如果考生選擇了任何乙個錯誤的選項,則不能得分。本題就請你寫個程式幫助老師批改多選題,並且指出哪道題的哪個選項錯的人最多。輸入格式 輸入在第一行給出兩個正...
1073 多選題常見計分法
1073 多選題常見計分法 20 分 批改多選題是比較麻煩的事情,有很多不同的計分方法。有一種最常見的計分方法是 如果考生選擇了部分正確選項,並且沒有選擇任何錯誤選項,則得到 50 分數 如果考生選擇了任何乙個錯誤的選項,則不能得分。本題就請你寫個程式幫助老師批改多選題,並且指出哪道題的哪個選項錯的...