PAT_B_1073_C++(20分)
生活随笔
收集整理的這篇文章主要介紹了
PAT_B_1073_C++(20分)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <iostream>
using namespace std;
const int M = 110, N = 1010;struct{double full_grade, options, correct_options;char op[10];
}ques[M];double grade[N];
int cnt[M][10]; // 第i道題的第j個(gè)選項(xiàng)int main ()
{int n, m;cin >> n >> m;for(int i = 1 ; i <= m ; i ++ ){cin >> ques[i].full_grade >> ques[i].options >> ques[i].correct_options;for(int j = 1 ; j <= ques[i].correct_options ; j ++ ) cin >> ques[i].op[j];}int flag_all = 1;for(int i = 1 ; i <= n ; i ++ )for(int j = 1 ; j <= m ; j ++ ){char c;scanf(" %c", &c);int ans_num;scanf(" %d", &ans_num);char put[10];for(int k = 1 ; k <= ans_num ; k ++ ) scanf(" %c", &put[k]);cin >> c;int flag = 1;for(int k = 1 ; k <= ans_num ; k ++ ) // 選錯(cuò){int mask = 0;for(int r = 1 ; r <= ques[j].correct_options ; r ++ ){if(put[k] == ques[j].op[r]) {mask = 1;break;}}if(!mask) // 標(biāo)準(zhǔn)答案里沒(méi)有的{int t = put[k] - 'a';cnt[j][t] ++ ;flag = 0; flag_all = 0;}}for(int k = 1 ; k <= ques[j].correct_options ; k ++ ) // 選漏{int mask = 0;for(int r = 1 ; r <= ans_num ; r ++ )if(ques[j].op[k] == put[r]) {mask = 1;break;}if(!mask) // 沒(méi)有選到的標(biāo)準(zhǔn)答案{int t = ques[j].op[k] - 'a';cnt[j][t] ++ ;flag_all = 0;}}if(!flag) continue; if(ans_num < ques[j].correct_options) grade[i] += ques[j].full_grade / 2;else grade[i] += ques[j].full_grade;}for(int i = 1 ; i <= n ; i ++ ) printf("%.1lf\n", grade[i]);if(flag_all) {puts("Too simple"); return 0;} // 這個(gè)要放到前面來(lái)不然的話,在mmax == 0的時(shí)候會(huì)waint mmax = 0;for(int i = 1 ; i <= m ; i ++ )for(int j = 0 ; j < 10 ; j ++ )mmax = max(mmax, cnt[i][j]);for(int i = 1 ; i <= m ; i ++ )for(int j = 0 ; j < 10 ; j ++ )if(cnt[i][j] == mmax)cout << mmax << " " << i << '-' << char(j + 'a') << endl;return 0;
}
總結(jié)
以上是生活随笔為你收集整理的PAT_B_1073_C++(20分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PAT_B_1070_Java(25分)
- 下一篇: PAT_B_1082_C++(20分)