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
반응형
'C > 기말고사 대비(2022 1학기)' 카테고리의 다른 글
[C언어 시험대비] 2015년 기출 (0) | 2022.06.12 |
---|---|
[C언어 시험대비] 2020년 기말고사 기출 (0) | 2022.06.11 |
[C언어 시험대비] 배열포인터 (0) | 2022.06.11 |
[C언어 시험대비] 16년 기출(2) (0) | 2022.06.11 |
[C언어 시험대비] 16년 기말고사 기출 (1) (0) | 2022.06.11 |
댓글