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
반응형
댓글