void recor_inf(struct stu_inf S[MAX], int *count) {

int i, tmp, c=0; // cursor


gotoxy(2, 1); printf("Enter를 입력하면 해당 자료 수정, 자료 선택 상태에서 Esc를 입력하면 되돌아갑니다");


view(S, count);


gotoxy(0, 4); printf(">");


while(1) {

getch();

fflush(stdin);


if (getch() == 72) {

if (c == 0) break;

else {

gotoxy(0, 4+c); printf(" ");

c--;

gotoxy(0, 4+c); printf(">");

}

}

if (getch() == 80) {

if (c == *count-1) break;

else {

gotoxy(0, 4+c); printf(" ");

c++;

gotoxy(0, 4+c); printf(">");

}

}

if (getch() == 13) {

gotoxy(0, 4+c); printf(" ");

gotoxy(5, 4+c); printf(" ");

gotoxy(5, 4+c); tmp = S[c].grd; scanf("%d", &S[c].grd);

if (S[c].grd == 0) {

S[c].grd = tmp;

break;

}

gotoxy(10, 4+c); printf("  ");

gotoxy(10, 4+c); scanf("%d", &S[c].cls);

gotoxy(15, 4+c); printf("   ");

gotoxy(15, 4+c); scanf("%d", &S[c].num);

gotoxy(21, 4+c); printf("      ");

gotoxy(21, 4+c); scanf("%s", S[c].name);

gotoxy(31, 4+c); printf("   ");

gotoxy(31, 4+c); scanf("%d", &S[c].kk);

gotoxy(38, 4+c); printf("   ");

gotoxy(38, 4+c); scanf("%d", &S[c].mm);

gotoxy(45, 4+c); printf("   ");

gotoxy(45, 4+c); scanf("%d", &S[c].ee);

S[c].sum = S[c].kk + S[c].mm + S[c].ee; gotoxy(52, 4+c); printf("=", S[c].sum);

S[c].rank = 1;

for(i=c; i<0; i--) {

if (S[i].grd == S[c].grd) {

if (S[i].sum < S[c].sum) S[i].rank++;

else if (S[i].sum > S[c].sum) S[c].rank++;

}

}

gotoxy(0, 4+c); printf(">");

}

if (getch() == 27) break;

}

for(i=0; i<*count; i++) {

if (i+1<*count) {

if (S[i].grd > S[i+1].grd) swap(&S[i], &S[i+1]);

else if (S[i].grd == S[i+1].grd) {

if (S[i].sum < S[i+1].sum) {

S[i].rank++;

swap(&S[i], &S[i+1]);

}

else if (S[i].sum > S[i+1].sum) S[i+1].rank++;

}

}

}


system("cls");

}




딴건 문제없고 (최적화나... 밑에 정렬도 문제 있긴 한데 이건 나중에 혼자 가능할듯) 72가 위 80이 아래 13이 엔터 27이 Esc인데


1번만 누르면 절대 반응 업고 네다섯번 눌러야 그때 입력이 들어가는데 어떻게 해야 하나여...