1058 選擇題 (20 分)

批改多選題是比較麻煩的事情,本題就請你寫個程序幫助老師批改多選題,并且指出哪道題錯的人最多。

輸入格式:

輸入在第一行給出兩個正整數 N(≤?1000)和 M(≤?100),分別是學生人數和多選題的個數。隨后 M 行,每行順次給出一道題的滿分值(不超過 5 的正整數)、選項個數(不少于 2 且不超過 5 的正整數)、正確選項個數(不超過選項個數的正整數)、所有正確選項。注意每題的選項從小寫英文字母 a 開始順次排列。各項間以 1 個空格分隔。最后 N 行,每行給出一個學生的答題情況,其每題答案格式為?(選中的選項個數 選項1 ……),按題目順序給出。注意:題目保證學生的答題情況是合法的,即不存在選中的選項數超過實際選項數的情況。

輸出格式:

按照輸入的順序給出每個學生的得分,每個分數占一行。注意判題時只有選擇全部正確才能得到該題的分數。最后一行輸出錯得最多的題目的錯誤次數和編號(題目按照輸入的順序從 1 開始編號)。如果有并列,則按編號遞增順序輸出。數字間用空格分隔,行首尾不得有多余空格。如果所有題目都沒有人錯,則在最后一行輸出?Too simple

輸入樣例:

3 4 
3 4 2 a c
2 5 1 b
5 3 2 b c
1 5 4 a b d e
(2 a c) (2 b d) (2 a c) (3 a b e)
(2 a c) (1 b) (2 a b) (4 a b d e)
(2 b d) (1 e) (2 b c) (4 a b c d)

輸出樣例:

3
6
5
2 2 3 4
//fgets(stu[i].option,10,stdin) 
//scanf("(%d%[^)]",&num_correct,str);
//這兩個輸入的字符串在最后的結尾處\n不相等,會導致strcmp無法完成匹配正確的結果 
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 1010;
struct Student{int grade;int num_option;int num_right;char option[60];int wrongTimes;
}stu[maxn];int main(){int n,m;//the numbers of the student and the questionscanf("%d%d",&n,&m);for(int i = 1; i <= m; i++){scanf("%d%d%d",&stu[i].grade,&stu[i].num_option,&stu[i].num_right);//scanf("%s",stu[i].option);//store the string including the front space //fgets(stu[i].option,10,stdin);//gets(stu[i].option);
        cin.getline(stu[i].option,maxn);}int wrongMax = -1;//record the question that the highest time of errors people makebool isWrong = false;//if there is a mistake,isWrong will become truefor(int i = 1; i <= n; i++){char str[100]; //store the option that students selectint sum = 0,num_correct; //store the grades that students getfor(int j = 1; j <= 4; j++){scanf("(%d%[^)]",&num_correct,str);//the function of %[^)] is store all character except ')'scanf(")");getchar(); if(num_correct == stu[j].num_right){if(strcmp(str,stu[j].option) == 0){sum += stu[j].grade;}else{stu[j].wrongTimes++;if(stu[j].wrongTimes > wrongMax) wrongMax = stu[j].wrongTimes;isWrong = true;}}else{stu[j].wrongTimes++;if(stu[j].wrongTimes > wrongMax) wrongMax = stu[j].wrongTimes;isWrong = true;}}printf("%d\n",sum);}if(!isWrong) printf("Too Simple\n");else{printf("%d",wrongMax);for(int i = 1; i <= m; i++){if(stu[i].wrongTimes == wrongMax) printf(" %d",i);}}return 0;
}

?

轉載于:https://www.cnblogs.com/wanghao-boke/p/10399507.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385201.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385201.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1060 愛丁頓數 (25 分)

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力&#xff0c;還定義了一個“愛丁頓數” E &#xff0c;即滿足有 E 天騎車超過 E 英里的最大整數 E。據說愛丁頓自己的 E 等于87。 現給定某人 N 天的騎車距離&#xff0c;請你算出對應的愛丁頓數 E&#xff08;≤&a…

數值的整數次方

題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 class Solution {public:double Power(double base, int exponent) {double res 1.0;for(int i exponent; i ! 0; i / 2){if(i % 2 ! 0)res * base;base * base;}return exponen…

1061 判斷題 (15 分)

判斷題的評判很簡單&#xff0c;本題就要求你寫個簡單的程序幫助老師判題并統計學生們判斷題的得分。 輸入格式&#xff1a; 輸入在第一行給出兩個不超過 100 的正整數 N 和 M&#xff0c;分別是學生人數和判斷題數量。第二行給出 M 個不超過 5 的正整數&#xff0c;是每道題的…

1064 朋友數 (20 分)

如果兩個整數各位數字的和是一樣的&#xff0c;則被稱為是“朋友數”&#xff0c;而那個公共的和就是它們的“朋友證號”。例如 123 和 51 就是朋友數&#xff0c;因為 123 51 6&#xff0c;而 6 就是它們的朋友證號。給定一些整數&#xff0c;要求你統計一下它們中有多少個不…

1067 試密碼 (20 分)

當你試圖登錄某個系統卻忘了密碼時&#xff0c;系統一般只會允許你嘗試有限多次&#xff0c;當超出允許次數時&#xff0c;賬號就會被鎖死。本題就請你實現這個小功能。 輸入格式&#xff1a; 輸入在第一行給出一個密碼&#xff08;長度不超過 20 的、不包含空格、Tab、回車的非…

1065 單身狗 (25 分)

單身狗”是中文對于單身人士的一種愛稱。本題請你從上萬人的大型派對中找出落單的客人&#xff0c;以便給予特殊關愛。 輸入格式&#xff1a; 輸入第一行給出一個正整數 N&#xff08;≤ 50 000&#xff09;&#xff0c;是已知夫妻/伴侶的對數&#xff1b;隨后 N 行&#xff0c…

存儲

一、多重繼承&#xff08;無虛函數覆蓋&#xff09; 下面&#xff0c;再讓我們來看看多重繼承中的情況&#xff0c;假設有下面這樣一個類的繼承關系。注意&#xff1a;子類并沒有覆蓋父類的函數。 class Base1 { public: virtual void f() { cout << "Base1::f&quo…

【對象程序設計面向】虛繼承

B C虛繼承A&#xff0c;D public繼承 B C &#xff0c;有A *a new D&#xff0c;a->fun(),fun是虛函數&#xff0c;并且B C都重寫了&#xff0c;怎么保證a調用的是B重寫的虛函數。 #include <iostream> using namespace std;class A { public:virtual void fun() { …

BTree和B+Tree詳解

B 樹是為了磁盤或其它存儲設備而設計的一種多叉&#xff08;下面你會看到&#xff0c;相對于二叉&#xff0c;B樹每個內結點有多個分支&#xff0c;即多叉&#xff09;平衡查找樹。 B 樹又叫平衡多路查找樹。一棵m階的B 樹 (m叉樹)的特性如下&#xff1a; 樹中每個結點最多含…

【1】MySQL的四種事務隔離級別

二、事務的并發問題 1、臟讀&#xff1a;事務A讀取了事務B更新的數據&#xff0c;然后B回滾操作&#xff0c;那么A讀取到的數據是臟數據 2、不可重復讀&#xff1a;事務 A 多次讀取同一數據&#xff0c;事務 B 在事務A多次讀取的過程中&#xff0c;對數據作了更新并提交&#x…

MySQL的四種事務隔離級別

1. MySQL的四種事務隔離級別

__thread

__thread是GCC內置的線程局部存儲設施&#xff0c;存取效率可以和全局變量相比。__thread變量每一個線程有一份獨立實體&#xff0c;各個線程的值互不干擾。可以用來修飾那些帶有全局性且值可能變&#xff0c;但是又不值得用全局變量保護的變量。 __thread使用規則&#xff1a…

eventfd(三)

1. 測試代碼&#xff1a; //https://www.jianshu.com/p/d7ebac8dc9f8 #include <stdio.h> #include <unistd.h> #include <stdint.h> #include <pthread.h> #include <sys/eventfd.h> #include <sys/epoll.h>int event_fd -1;void *rea…

04-樹4 是否同一棵二叉搜索樹 (25 分)

給定一個插入序列就可以唯一確定一棵二叉搜索樹。然而&#xff0c;一棵給定的二叉搜索樹卻可以由多種不同的插入序列得到。例如分別按照序列{2, 1, 3}和{2, 3, 1}插入初始為空的二叉搜索樹&#xff0c;都得到一樣的結果。于是對于輸入的各種插入序列&#xff0c;你需要判斷它們…

strtol,strtoll,strtoul, strtoull函數的使用

#include<stdlib.h> // 這個是C標準庫&#xff0c;與linux無關。這套函數是通用 long int strtol(const char *nptr, char **endptr, int base); long long int strtoll(const char *nptr, char **endptr, int base); unsigned long int strtoul(const char *nptr, char …

eventfd(一)

函數原型&#xff1a; 創建的時候可以傳入一個計數器的初始值initval。 第二個參數flags在linux 2.6.26之前的版本是沒有使用的&#xff0c;必須初始化為0&#xff0c;在2.6.27之后的版本flag才被使用。 #include <sys/eventfd.h> int eventfd(unsigned int initval, in…

gettimeofday

作用&#xff1a;需要打印代碼執行到某處的時間&#xff0c;或者需要計算程序執行的時間差&#xff08;精確到微妙級&#xff09;。這時會用到gettimeofday函數&#xff0c;它可以返回自1970-01-01 00:00:00到現在經歷的秒數。 #include <sys/time.h> int gettimeofday(…

02-線性結構2 一元多項式的乘法與加法運算 (20 分

設計函數分別求兩個一元多項式的乘積與和。 輸入格式: 輸入分2行&#xff0c;每行分別先給出多項式非零項的個數&#xff0c;再以指數遞降方式輸入一個多項式非零項系數和指數&#xff08;絕對值均為不超過1000的整數&#xff09;。數字間以空格分隔。 輸出格式: 輸出分2行&…

1066 圖像過濾 (15 分)

圖像過濾是把圖像中不重要的像素都染成背景色&#xff0c;使得重要部分被凸顯出來。現給定一幅黑白圖像&#xff0c;要求你將灰度值位于某指定區間內的所有像素顏色都用一種指定的顏色替換。 輸入格式&#xff1a; 輸入在第一行給出一幅圖像的分辨率&#xff0c;即兩個正整數 M…

從零實現一個http服務器

如果GET請求帶參數&#xff0c;那么一般是附加在請求的url后面&#xff0c;參數與參數之間使用&分割&#xff0c;例如請求http://www.hootina.org/index_2013.php?param1value1m2value2m3value3&#xff0c;我們看下這個請求組裝的的http協議包格式&#xff1a; GET /ind…