其他分享
首页 > 其他分享> > pat乙级 1061 判断题 C语言实现

pat乙级 1061 判断题 C语言实现

作者:互联网

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

输入格式:

输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。

输出格式:

按照输入的顺序输出每个学生的得分,每个分数占一行。

输入样例:

3 6
2 1 3 3 4 5
0 0 1 0 1 1
0 1 1 0 0 1
1 0 1 0 1 0
1 1 0 0 1 1

输出样例:

13
11
12

 代码及思路如下

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	int n,m;  //学生人数和判断题数量
	int i,j,k,l;  //循环控制变量
	scanf("%d %d",&n,&m);
	int a[m]; // 每道题的分数
	int b[m]; //每道题的答案
	int c[n]; // 每个人的分数
	int d[m]; //存放输入的答案数组
	
	for(i=0;i<n;i++)   //初始化存放分数的数组,使里面的值全为0,不然会被初始化为未知值
	{
		c[i]=0;
	}
	
	for(i = 0;i<m;i++)  //输入每道题的分数
	{
		scanf("%d",&a[i]);
	 } 
	
	for(j=0;j<m;j++)   //输入每道题的答案
	{
		scanf("%d",&b[j]);
	}
	
	for(k=0;k<n;k++)
	{
		for(l=0;l<m;l++)    //输入学生的答案,和存放答案的数组对比,相同就加上存放每道题分数数组对应位置上的值
		{
			scanf("%d",&d[l]);
			if(d[l]==b[l])
			{
				c[k]=c[k]+a[l];
			}
		}
	}
	
	for(i=0;i<n;i++)
	{
		printf("%d\n",c[i]);
	}
	
	system("pause");
	return 0 ;
}

 

标签:每道题,pat,1061,C语言,int,给出,判断题,学生,输入
来源: https://blog.csdn.net/qq_44161320/article/details/100513621