국비 뗄감질하는데
C가 너무재밌어서
오늘 sort를 하는데
배운걸 여기다 쓰고 질문할게
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define point 10
int main(void) {
int a[6][9] = { 0 };
int i, j, k, temp, lo, sw = 0, rank;
int low = 1, high = 5, mid;
srand(time(NULL));
//a[1][2] = 89, a[1][3] = 100, a[1][4] = 79, a[1][5] = 76;
//a[2][2] = 46, a[2][3] = 78, a[2][4] = 98, a[2][5] = 78;
//a[3][2] = 86, a[3][3] = 79, a[3][4] = 88, a[3][5] = 99;
//a[4][2] = 67, a[4][3] = 77, a[4][4] = 88, a[4][5] = 99;
//a[5][2] = 78, a[5][3] = 79, a[5][4] = 98, a[5][5] = 100;
//for (i = 1; i <= 5; i++) {
// for (j = 2; j <= 5; j++) {
// a[i][j] = rand() % 50 + 50;
// }
//}
for (i = 1; i <= 5; i++) {
a[i][1] = i;
for (j = 2; j <= 5; j++) {
a[i][6] = a[i][j]+a[i][6];
}
a[i][7] = a[i][6] / 4;
a[i][8] = 1;
}
// 총점, 평균 ,석차 초기치
//for (i = 1; i <= 5; i++) {
// for (j = 1; j <= 5; j++) {
// if (a[i][6] < a[j][6]) {
// a[i][8] = a[i][8] + 1;
// }
// }
//}
//정렬 1
for (i = 1; i <= 5; i++) {
for (j = i+1; j <= 5; j++) {
if (a[i][6] > a[j][6]) {
a[j][8]++;
}
else {
a[i][8]++;
}
}
}
//선택정렬 (정렬2) 석차 표시완료
printf("정렬전 자료 출력 \n");
printf("-------------------------------------------\n");
printf("번호 국어 수학 영어 과학 총합 평균 석차\n");
printf("-------------------------------------------\n");
for(int i=1;i<=5;i++)
{
for (int j = 1; j <= 8; j++) {
printf("]", a[i][j]);
}
printf("\n");
}
//정보 출력
//for (i = 1; i <= 4; i++) {
// for (j = i + 1; j <= 5; j++) {
// if (a[i][8] > a[j][8]) {
// for (k = 1; k <= 8; k++) {
// temp = a[i][k];
// a[i][k] = a[j][k];
// a[j][k] = temp;
// }
// }
// }
//}
//석차 대로 정렬 -
for (i = 1; i <= 4; i++)
{
lo = i;
for (j = i + 1; j <= 5; j++) {
if (a[lo][8] > a[j][8]) {
lo = j;
}
}
for (k = 1; k <= 8; k++) {
temp = a[i][k];
a[i][k] = a[lo][k];
a[lo][k] = temp;
}
}
//센세가 추천한방법
printf("정렬후 자료 출력 \n");
printf("-------------------------------------------\n");
printf("번호 국어 수학 영어 과학 총합 평균 석차\n");
printf("-------------------------------------------\n");
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 8; j++) {
printf("]", a[i][j]);
}
printf("\n");
}
return 0;
}
볼드체로 쓴 부분인데
수업이 석차까지는 뽑고 석차대로 다시 정렬시키는 수업이었어.
첨에알려주기 전에 나는 석차를 다 미리 구해놨으니까
표를 하나 새로파서 1등을 0행에 넣는식으로 a2 로 표를 하나 새로 파서 빈곳에 촤라락 채워넣는식으로 짰거든?
근데 국비센세가 그럼 동점자가 나와서 2등이 두명이면 어떻게 할거냐 라고 하는거야.. 자기가 말한대로 교환식으로 해야한다고
걍 대가리속에서는 그럼 표시될 등수 따로 뽑고 내부에서 연산돌릴 등수 같은 석차 나오지않게 만들면 되지않을까? 만 생각하고
아 그러네요~ 하고 말았는데 암만생각해도 이방법도 좋은거같애
물론 교환해서 하는 그런 알고리즘 방식은 알아야 한다고 생각함. 수업이니깐.
근데 내가 궁금한건 표 하나 새로 찍는건 별로인방법??
4일째 국비 받는거라 질문수준 존나 병신같은건 이해좀
이런거 고민해서 짜서 결과 나오면 넘나 재밌어서 계속하게 됨
댓글 0