프로그램 질문입니다.
미쁘다
질문 제목 : 임의의 학생과 각 과목 점수 입력받아 최고총점, 최저총점 받은 학생의 이름과 총점 출력하는 프로그램 질문입니다. 실행결과중 최고/최저 총점받은 학생의 이름이 둘다 4번학생으로 나옵니다.
질문 내용 :
#includestdio.h
#includemalloc.h
int main(void)
{
int students, s;
int *kor_score=null;
int *eng_score=null;
int *math_score=null;
int max, min;
printf(성적 처리할 학생 수를 입력하세요: );
scanf(%d, &students);
kor_score=(int*)malloc(sizeof(int)*students);
eng_score=(int*)malloc(sizeof(int)*students);
math_score=(int*)malloc(sizeof(int)*students);
printf(국어, 영어, 수학 점수를 입력하세요.\n);
for(s=0; sstudents; s++)
{
printf(%d번 학생: , s+1);
scanf(%d %d %d, &kor_score[s], &eng_score[s], &math_score[s]);
}
printf(--------------------\n);
max=(kor_score[0] + eng_score[0] + math_score[0]);
min=(kor_score[0] + eng_score[0] + math_score[0]);
for(s=0; sstudents; s++)
{
printf(%d번 학생: %3d %3d %3d\n, s+1, kor_score[s], eng_score[s], math_score[s]);
if(max (kor_score[s] + eng_score[s] + math_score[s]))
max = (kor_score[s] + eng_score[s] + math_score[s]);
if(min (kor_score[s] + eng_score[s] + math_score[s]))
min = (kor_score[s] + eng_score[s] + math_score[s]);
}
printf(최고 총점을 받은 학생의 이름: %d번 학생, 총점: %3d\n, s+1, max);
printf(최저 총점을 받은 학생의 이름: %d번 학생, 총점: %3d\n, s+1, min);
printf(--------------------\n);
for(s=0; sstudents; s++)
{
printf(%d번 학생의 총점: %3d 점\n, s+1, (kor_score[s] + eng_score[s] + math_score[s]));
printf(%d번 학생의 평균: %3.2f 점\n, s+1, (double)(kor_score[s] + eng_score[s] + math_score[s])/3.0);
}
free(kor_score);
free(eng_score);
free(math_score);
return 0;
}
일단 소스코드인데요
다른거는 잘나오는데 최고/최저 총점 받은 학생의 이름이 다 4번학생으로 출력이되네요;;;
뭐가 잘못된 건지 몰라서 질문드립니다;;
그리고 각각 다르게 나오게 하려면 도대체 어떻게 해야 되나요??? ㅜ.ㅜ
-
단순드립
printf(\최고 총점을 받은 학생의 이름: %d번 학생, 총점: %3d\\n\