pat 2급 1061C 언어

13735 단어 pat 시험patc 언어
1061 판단문제(15점)
판단 문제의 평판은 매우 간단하다. 본 문제는 선생님께서 문제를 판정하고 학생들의 판단 문제의 득점을 통계하도록 간단한 절차를 써 달라고 요구한다.입력 형식:
첫 줄에 100을 넘지 않는 두 개의 정수 N과 M을 입력하여 각각 학생 수와 판단 문제 수를 제시한다.두 번째 줄은 5를 넘지 않는 M개의 정수를 주어 각 문제의 만점값이다.세 번째 줄은 매 문제에 대응하는 정답을 제시하는데 0은'비', 1은'예'를 대표한다.그 다음에 N행, 각 행은 한 학생의 해답을 준다.숫자 사이는 모두 공백으로 구분된다.출력 형식:
입력한 순서에 따라 모든 학생의 득점을 출력하고, 매 점수가 한 줄을 차지한다.샘플 입력:
3 6 2 1 3 4 5 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 출력 예제:
13 11 12
사고의 방향
구조체로 체득하는 것이 좀 더 명확하다고 느낀다. 아래의 첫 번째는 직접 계산하고, 두 번째는 구조체로 계산하는데, 차이가 많지 않으니 비교하고 누적한다.
#include
#include

int main()
{
  int N,M;
  scanf("%d%d",&N,&M);
  int grade[M],true[M];
  for(int i=0;i<M;i++)
  {
    scanf("%d",&grade[i]);
  }
  for(int i=0;i<M;i++)
  {
    scanf("%d",&true[i]);
  }
  int student[N][M];
  int studentgrade[N];
  memset(studentgrade,0,sizeof(studentgrade));
  for(int i=0;i<N;i++)
  {
    for(int j=0;j<M;j++)
    {
      scanf("%d",&student[i][j]);
      if(student[i][j]==true[j])
      {
        studentgrade[i]+=grade[j];
      }
    }
  }
  for(int i=0;i<N;i++)
  {
    printf("%d
"
,studentgrade[i]); } }

두 번째 솔
#include
#include

typedef struct//          
{
    int answer;
    int grade;
}title;

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    title t[m];
    for(int i=0;i<m;i++)
    {
        scanf("%d",&t[i].grade);//    
    }
    for(int i=0;i<m;i++)
    {
        scanf("%d",&t[i].answer);//    
    }
    for(int i=0;i<n;i++)//  n      
    {
        int sum=0,temp;
        for(int j=0;j<m;j++)
        {
            scanf("%d",&temp);
            if(t[j].answer==temp)//      
            {
                sum+=t[j].grade;//    
            }
        }
        printf("%d
"
,sum);// } }

좋은 웹페이지 즐겨찾기