PAT BASIC1073 多選題常見計分法

2021-08-30 04:15:47 字數 1794 閱讀 8283

我的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 分數 如果考生選擇了任何乙個錯誤的選項,則不能得分。本題就請你寫個程式幫助老師批改多選題,並且指出哪道題的哪個選項錯的...