오류 질문...
신당
#include stdio.h
void main()
{
int stu[5][3];
int sum1[5]={0};
int sum2=0;
int i, j, k;
int temp=0;
for(i=0; i5; i++)// 성적 입력
{
for(j=0; j3; j++)
{
printf(%d번째 학생의 %d번째성적(1번째 : 국어, 2번째 : 영어, 3번째 : 수학) : , i+1, j+1);
scanf(%d, &stu[i][j]);
fflush(stdin);
}
printf(\n);
}
for(i=0; i5; i++)// 학생별 성적 합
{
for(j=0; j3; j++)
{
sum1[i]+=stu[i][j];
}
}
for(i=0; i5; i++)// 전체성적 합
{
sum2+=sum1[i];
}
for(i=0; i5; i++)// 학생별 총점 출력
{
printf(%d학생의 총점 : %d\n, i+1, sum1[i]);
}
printf(모든학생의 총점 : %d\n, sum2);
for(j=0; j5; j++)// 총점 정렬
{
for(i=0; i5; i++)
{
if(sum1[i]sum1[i+1])
{
temp=sum1[i];
sum1[i]=sum1[i+1];
sum1[i+1]=temp;
}
}
}
for(k=0; k3; k++)// 각 과목 정렬
{
for(j=0; j5; j++)
{
for(i=0; i4; i++)
{
if(stu[i][k]stu[i+1][k])
{
temp=stu[i][k];
stu[i][k]=stu[i+1][k];
stu[i+1][k]=temp;
}
}
}
}
printf(국어 최고점 : %d , 국어 최하점 : %d\n, stu[0][0], stu[4][0]);
printf(영어 최고점 : %d , 영어 최하점 : %d\n, stu[0][1], stu[4][1]);
printf(수학 최고점 : %d , 수학 최하점 : %d\n, stu[0][2], stu[4][2]);
printf(총점 최고점 : %d , 총점 최하점 : %d\n, sum1[0], sum1[4]);
}
학교에서 c언어 공부 중인데 위에 코드에서 각 과목 정렬 부분의세번째 for문에서 i4를 i5로 하면
라면서 오류가 뜨면서 종료하라고 합니다. 저 종료하라는 창은 왜 뜨는건가요?
-
BlackCat
if(stu[i][k]stu[i+1][k])
위와 같이 stu[i + 1]을 참조하는 곳이 있어서입니다. i를 0~4까지 돌리면 i + 1은 5가 되고, 배열의 범위를 벗어나게 됩니다.