问题标题: 酷町堂:谁能讲讲1131的思路,谢谢了

0
0
已解决
赵航宇
赵航宇
资深守护
资深守护

1131   判断题正确率

题目描述 Description

在无纸化改卷中,对于判断题,用1表示正确,0表示错误。已知某次考试有m门课,每门课有n道判断题,每道题目的参考答案已经给出,由输入决定。现有一位同学小明,给出他每门课的选择题答案,对比参考答案求出该同学判断题的正确率,以百分比的形式输出,结果保留2位小数。

输入描述 Input Description

输入为2*m+1行:
第一行为2个整数,表示考试的门数m以及每门课的判断题题数n(m≤10;n≤50);
之后的m行为每门课判断题的标准答案,每一行表示一门科目,每一题的答案之间用一个空格隔开;
最后的m行为小明每门课选择题的答案,每一行表示与参考答案科目对应的科目,每一题的答案之间用一个空格隔开。

输出描述 Output Description

输出为一行,包含一个实数,为小明同学选择题的正确率,以百分比形式输出,结果保留2位小数。

样例输入 Sample Input

 

4 5
1 1 1 0 0
1 0 1 0 1
1 1 1 1 0
0 0 0 1 1
1 1 1 0 1
1 0 1 1 1
1 0 1 0 0
1 0 0 1 1

样例输出 Sample Output

 

75.00%


1
已采纳
王子健
王子健
初级天翼
初级天翼

这题的话,属于二维数组中比较难的题目了,但也不是非常难

思路如下:

先输入m,n和两个m行n列的二维数组

然后双重循环,判断这两个二维数组相对应的位置的数字是否相同,相同一个计数器++

最后保留两位小数输出计数器除以m*n的结果,因为m*n是总题数,正确的除以总共的等于正确率

最后的最后,也是精髓,在printf下面要有个cout,输出一个%,不然会错!!!

0
周明轩
周明轩
资深光能
资深光能

这道题很简单,如果你学了二维数组就会了。

思路如下:

1.输入n和m
2.输入两个二维数组,再一次输入
3.定义一个计数变量,如果两个二维数组中同一位置上的元素不相同,就让计数变量++
4.printf("%.2f",100.0-(100.0/(n*m))*计数变量);
  cout<<'%';
//注意:最后的%号要单独输出

望采纳,谢谢!!!

我要回答