본문 바로가기
카테고리 없음

[C언어 시험대비]18년 기출

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

 

1) 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
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
#include<stdio.h>
 
 
 
void printAvg(float* a, float* b, float *c) {
 
    float avgA = 0;
    float avgB = 0;
    float avgC = 0;
    for (int i = 0; i < 3; i++) {
        avgA += a[i];
        avgB += b[i];
        avgC += c[i];
    }
    
    avgA /= 3;
    avgB /= 3;
    avgC /= 3;
    
    a[3= avgA;
    b[3= avgB;
    c[3= avgC;
    printf("루피의 평균 = %.2f\n", a[3]);
    printf("쵸파의 평균 = %.2f\n", b[3]);
    printf("샹크스의 평균 = %.2f\n", c[3]);
 
 
}
 
void printRank(float* a,float* b,float* c) {
    
    char name[3][20= {
        {"루피"},
        {"쵸파"},
        {"샹크스"}
    };
    float kor[3= { a[0],b[0],c[0] };
    float korMax = 0;
    int korIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (korMax < kor[i]) {
            korMax = kor[i];
            korIdx = i;
        }
    }
    //영어
    float eng[3= { a[1],b[1],c[1] };
    float engMax = 0;
    int engIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (engMax < eng[i]) {
            engMax = eng[i];
            engIdx = i;
        }
    }
    
    //수학
    float math[3= { a[2],b[2],c[2] };
    float mathMax = 0;
    int mathIdx = 0;
    
    for (int i = 0; i < 3; i++) {
        if (mathMax < math[i]) {
            mathMax = math[i];
            mathIdx = i;
        }
    }
 
    float avg[3= { a[3],b[3],c[3] };
    float avgMax = 0;
    int avgIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (avgMax < avg[i]) {
            avgMax = avg[i];
            avgIdx = i;
        }
    }
 
    printf("국어 1등 = %s\n", name[korIdx]);
    printf("영어 1등 = %s\n", name[engIdx]);
    printf("수학 1등 = %s\n", name[mathIdx]);
    printf("평균 1등 = %s\n", name[avgIdx]);
}
int main() {
    float a[4];
    float b[4];
    float c[4];
 
    for (int i = 0; i < 3; i++) {
        scanf_s("%f"&a[i]);
    }
 
    for (int i = 0; i < 3; i++) {
        scanf_s("%f"&b[i]);
    }
 
    for (int i = 0; i < 3; i++) {
        scanf_s("%f"& c[i]);
    }
 
    printAvg(a, b, c);
    printRank(a, b, c);
}
 
 
 
 
 
cs

서식문자 f로 받는거 잊지 말것!

 

 

2) 3X3배열로 -> 배열포인터 사용해야쥬?

 

 

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
#include<stdio.h>
#include<limits.h>
 
 
void printAvg(float(*arr)[4]) {
    
    for (int i = 0; i < 3; i++) {
        arr[0][3+= arr[0][i]; //루피
        arr[1][3+= arr[1][i];//쵸파
        arr[2][3+= arr[2][i];
    }
    arr[0][3/= 3;
    arr[1][3/= 3;
    arr[2][3/= 3;
    printf("루피의 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[0][i]);
    }
    printf("\n");
 
    printf("쵸파의 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[1][i]);
    }
    printf("\n");
 
    printf("샹크스의 성적\n");
    for (int i = 0; i < 3; i++) {
        printf("%.0f ", arr[2][i]);
    }
    printf("\n");
 
    printf("루피의 평균 = %.2f\n", arr[0][3]);
    printf("쵸파의 평균 = %.2f\n", arr[1][3]);
    printf("샹크스의 평균 = %.2f\n", arr[2][3]);
 
}
 
void printRank(float(*arr)[4]) {
 
    char name[3][30= {
        {"루피"},
        {"쵸파"},
        {"샹크스"}
    };
 
    //국어
    float maxKor = 0;
    int korIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (arr[i][0> maxKor) {
            maxKor = arr[i][0];
            korIdx = i;
        }
    }
 
    //영어
 
    float maxEng = 0;
    int engIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (arr[i][1> maxEng) {
            maxEng = arr[i][1];
            engIdx = i;
        }
    }
 
    //수학
 
    float maxMath = 0;
    int mathIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (arr[i][2> maxMath) {
            maxMath = arr[i][2];
            mathIdx = i;
        }
    }
    
    
 
    //평균
 
    float maxAvg = 0;
    int avgIdx = 0;
    for (int i = 0; i < 3; i++) {
        if (arr[i][3> maxAvg) {
            maxAvg = arr[i][3];
            avgIdx = i;
        }
    }
 
    printf("국어 1등 = %s\n", name[korIdx]);
    printf("영어 1등 =%s\n", name[engIdx]);
    printf("수학 1등 = %s\n", name[mathIdx]);
    printf("평균 1등 = %s\n", name[avgIdx]);
 
 
}
 
int main() {
 
    
    float arr[4][4];
    
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            scanf_s("%f"&arr[i][j]);
            
        }
        arr[i][3= 0//초기화 시켜줘야 쓰레기값이 안나옵니당~!
    }
 
    printAvg(arr);
    printRank(arr);
 
 
 
}
 
 
 
 
 
cs

 

 

배열포인터는 포인터를 배열처럼 사용할 수 있게 해준다!

728x90
반응형

댓글