안녕하세요 C언어 2차원 배열관련 의문점이 있어 글 남깁니다!
int main(void)
{
int arr[5][5];
int i, j, sum;
for(i=0; i<4; i++)
{
sum=0;
printf("%d번째 학생의 성적 입력 \n", i+1);
for(j=0; j<4; j++)
{
printf("입력 : ");
scanf("%d", &arr[i][j]);
sum += arr[i][j]; // 학생 별 점수 합계
}
arr[i][4] = sum; // i행의 마지막 배열에 총합 삽입
}
for(i=0; i<4; i++)
{
sum=0;
for(j=0; j<4; j++)
sum += arr[j][i]; // 과목별 점수 합계
arr[4][i] = sum; // i열의 마지막 배열에 총합 삽입
arr[4][4] += sum; // 과목별 점수 총합의 합계
}
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
printf("%3d ", arr[i][j]);
printf("\n");
}
return 0;
}
[5][5]크기의 2차원배열에 [0~3][0~3]까지는 값을 입력받고 각 행,열 마지막 배열에 총합을 계산하여
마지막배열의 총합을 또 계산하여 arr[4][4]에 과목별 점수 총합의 합계를 삽입하는 에제문을
풀었습니다만
(모든 입력을 5로 가정하였을 시)
5 5 5 5 20
5 5 5 5 20
5 5 5 5 20
5 5 5 5 20
20 20 20 20 85 <-문제점 arr[4][4]부분
정답이라면 80이 나와야 하는데 왜5가 더해져서 나오는지 궁금합니다.
(다른 무작위 숫자를 입력해도 5개 더해져서 나옴)
또한 arr[4][4] = arr[0][4] + arr[1][4] + arr[2][4] + arr[3][4]
위 식으로 하면 결과가 정확하게 나옵니다만 for문을 활용할 시 5가 더해져서 나옵니다.
어찌하여 이런 현상이 일어나는지 너무 궁금합니다ㅠㅠ
사용하는 프로그램은 Xcode-14.0 입니다.
배열이 초기화 안되어있어 쓰레기값이 남아 그런 것 같습니다. 배열을 초기화한 후 해보시면 좋을 것 같습니다. //5번째 줄 int arr[5][5] ={0,};