본문 바로가기
C/기말고사 대비(2022 1학기)

[C언어 시험대비] 2016년 기말고사 기출(3)

by Meaning_ 2022. 6. 11.
728x90
반응형

다시!!가 들어가면 제발 while써..젭알..

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include<stdio.h>
#include<limits.h>
 
void printScore(float(*arr)[4]) {
    float A = 0;
    float B = 0;
    float C = 0;
 
    for (int i = 0; i < 3; i++) {
        A += arr[i][0];
        B += arr[i][1];
        C += arr[i][2];
    }
    A /= 3;
    B /= 3;
    C /= 3;
    arr[0][3= A;
    arr[1][3= B;
    arr[2][3= C;
 
    printf("A 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[i][0]);
    }
    printf("%.2f\n", A);
 
    printf("B 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[i][1]);
    }
    printf("%.2f\n", B);
 
    printf("C 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[i][2]);
    }
    printf("%.2f\n", C);
}
 
void printRank(float(*arr)[4]) {
    char alpha[3= { 'A','B','C' };
    
    //숭
    float sMax = 0;
    int sIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (sMax < arr[i][0]) {
            sMax = arr[i][0];
            sIdx = i;
        }
    }
 
    //현
    float hMax = 0;
    int hIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (hMax < arr[i][1]) {
            hMax = arr[i][1];
            hIdx = i;
        }
    }
 
    //정
 
    float jMax = 0;
    int jIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (jMax < arr[i][2]) {
            jMax = arr[i][2];
            jIdx = i;
        }
    }
 
    //전체 평균
 
    float avgMax = 0;
    int avgIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (avgMax < arr[i][3]) {
            avgMax = arr[i][3];
            avgIdx = i;
        }
    }
 
    printf("숭역진 1등 = %c\n", alpha[sIdx]);
    printf("현성 1등 = %c\n", alpha[hIdx]);
    printf("정예개 1등 = %c\n", alpha[jIdx]);
    printf("전체 평균 1등 = %c\n", alpha[avgIdx]);
}
 
int main() {
 
    float arr[3][4];
    char name[3][30= {
        {"숭역진"},
        {"현성"},
        {"정예개"}
    };
 
    char alpha[3= { 'A','B','C' };
    printf("%s 성적 입력하세요.\n",name[0]);
    for (int i = 0; i < 3; i++) {
        scanf_s("%f"&arr[0][i]);
        
    }
    for (int i = 0; i < 3; i++) {
        
        while (true) {
 
            if (0 > arr[0][i] || arr[0][i] > 100) {
                printf("%c 학생 다시!!\n", alpha[i]);
                scanf_s("%f"&arr[0][i]);//한번 더 scanf넣어줘야
            }
            else {
                break;
                
            }
        }
    }
    printf("%s 성적 입력하세요.\n",name[1]);
    for (int i = 0; i < 3; i++) {
        while (true) {
            scanf_s("%f"&arr[1][i]);
            if (0 > arr[1][i] || arr[1][i] > 100) {
                printf("%c 학생 다시!!\n", alpha[i]);
 
            }
            else {
                break;
            }
        }
    }
    printf("%s 성적 입력하세요.\n",name[2]);
    for (int i = 0; i < 3; i++) {
 
        while (true) {
            scanf_s("%f"&arr[2][i]);
            if (0 > arr[2][i] || arr[2][i] > 100) {
                printf("%c 학생 다시!!\n", alpha[i]);
            }
            else {
                break;
            }
        }
        
    }
 
    printScore(arr);
    printRank(arr);
}
 
 
 
 
 
cs
728x90
반응형

댓글