问题标题: 酷町堂: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%

这道题我哪里错了????

运行的结果是:150.00%

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    bool a[15][55],b[15][55];
    int m,n,cnt=0,sum=0;
    cin>>m>>n;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>b[i][j];
            if(a[i][j]==b[i][j])
            {
                sum+=b[i][j];
                cnt++;
            }
        }
    }
    printf("%.2f%%",cnt/(sum*1.0)*100);
    return 0;
}

 


0
已采纳
张天璨
张天璨
新手天翼
新手天翼

你的代码我看不懂!

双手献上我的Accepted代码:

#include<iostream>
#include<iomanip>
using namespace std;
bool a[20][60],b[20][60];
int main()
{
    int m,n;
    double cnt=0;
    cin>>m>>n;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>b[i][j];
            if(a[i][j]==b[i][j])
            {
                cnt++;
            }
        }
    }
    cout<<fixed<<setprecision(2)<<cnt/(m*n)*100;
    cout<<"%";
    return 0;
}

望巨佬采纳!

0
黄子扬
黄子扬
初级天翼
初级天翼

你150%正确率6666666

1维不香吗。。。

0
禄子墨
禄子墨
初级守护
初级守护

您好

sum(是不是总题数呢)可以直接用m * n。

0
我要回答