본문 바로가기
PRACTICE/Basic

[C] 성적 구하는 프로그램 (난수, 다차원 배열 사용)

by 1005 2020. 11. 10.

 

1) 난수로 생성된 성적 구하기 (학생 별 점수, 점수 총점, 점수 평균, 과목 별 평균 출력)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int scores[3][4];
    int i, j;
    int tot = 0;
    double avg;
    double average[4= { 0 };
    srand(time(NULL));                
 
    // 자료생성
    for (i = 0; i < 3; i++)
        for (j = 0; j < 4; j++)
            scores[i][j] = rand() % 100;   // 난수생성하여 배열에 저장
 
    // 자료출력
    for (i = 0; i < 3; i++)
    {
        tot = 0;
        printf("     %d번째 학생: ", i + 1);
        for (j = 0; j < 4; j++)
        {
            printf("%9d", scores[i][j]);
            tot += scores[i][j];            // 개인 총점
            average[j] += scores[i][j];     // 과목 총점
        }
        avg = tot / 4.0;
        printf("   총점:%2d   평균:%.2f \n", tot, avg);
    }
    for (i = 0; i < 4; i++)
        average[i] /= 3.0;                       // 과목 평균
 
    puts("------------------------------------------------------------------------------");
    printf("과목별 평균점수: ");
    for (i = 0; i < 4; i++)
        printf("\t%.1f", average[i]);           // 과목평균출력
    printf("\n");
}

 

 

 


 

2)

한 학기 성적은 중간고사 30점, 기말고사 30점, 팀프로젝트 30, 출석 10으로 계산한다. 

각 학생 별 총점을 구하고, 중간고사, 기말고사, 팀 프로젝트, 출석, 총점의 평균을 구하는 프로그램을 작성한다.

단, 성적을 구하는 2차원 배열값은 임의의 점수를 입력하시오. (0 ~100 사이) 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
int main(void)
{
    int scores[5][5= {       // 학생 1명당 4개의 성적, 학생은 모두 5명임
        {28,28,26,9},
        {30,27,30,10},
        {25,26,24,8},
        {18,22,22,5},
        {24,25,30,10}
    };
    double averages[5= { 0 };
    int i, j;
 
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 4; j++) {
            scores[i][4+= scores[i][j];
            averages[j] += scores[i][j];
        }
        averages[4+= scores[i][4];
    }
    for (j = 0; j < 5; j++)
        averages[j] /= 5;
 
    printf("                중간  기말  팀플  출석  총점\n");
 
    for (i = 0; i < 5; i++) {
        printf(" 학 생  %2d번: ", i + 1);
        for (int j = 0; j < 5; j++) {
            printf("%5d ", scores[i][j]);
        }
        printf("\n");
    }
    printf("과목 별 평균:   ");
    for (j = 0; j < 5; j++)
        printf("%5.1f ", averages[j]);
    printf("\n");
}
 

 

 

 

 

댓글