안녕하세요! 2차원 배열에 대해서 질문하나 올립니다!
설화
윤성우의 열혈c프로그래밍의 연습문제 입니다.철희
국어
영어
수학
국사
총점
철수영희영수과목별 총점
이렇게 출력이 나와야 하거든요?
근데 아직부족한점이 많아서 과목별 총점은 빼버리고 4명의 사람과 네과목, 총점 이렇게만 출력하려고 코드를 짯습니다.
아래의 코드는 제가 만든 코드이고 컴파일러상의 에러는 없습니다.
다만 값을 다 입력한뒤 출력할때 똥값이 나오네요 ^^;
고수님들의 많은 지적과 가르침 부탁드리구요! 제가 봤을땐 코드가 너무 복잡한듯한데, 더 간단히 할수있는 방법이 있다면
살짝(?) 힌트도 주셧으면 합니다 ^^
#include stdio.h
int main()
{
int arr[4][5];
int a, b, s, sum1, sum2, sum3, sum4, sum5, x, e, r;
s=sizeof(arr) / sizeof(int);
for(a=0;a4;a++){
for(b=0;b5;b++){
if(arr[a][b] == arr[a][0]){
printf(국어점수를 입력하세요\n);
scanf(%d, &arr[a][0]);
}
else if(arr[a][b] == arr[a][1]){
printf(영어점수를 입력하세요\n);
scanf(%d, &arr[a][1]);
}
else if(arr[a][b] == arr[a][2]){
printf(수학점수를 입력하세요\n);
scanf(%d, &arr[a][2]);
}
else if(arr[a][b] == arr[a][3]){
printf(국사점수를 입력하세요\n);
scanf(%d, &arr[a][3]);
}
else if(arr[a][b] == arr[0][4]){
for(x=0;x4;x++){
arr[0][4] += arr[0][x];
}
}
else if(arr[a][b] == arr[1][4]){
for(x=0;x4;x++){
arr[1][4] += arr[1][x];
}
}
else if(arr[a][b] == arr[2][4]){
for(x=0;x4;x++){
arr[2][4] += arr[2][x];
}
}
else if(arr[a][b] == arr[3][4]){
for(x=0;x4;x++){
arr[3][4] += arr[3][x];
}
}
}
}
for(e=0;e4;e++){
for(r=0;r5;r++){
printf(%d, arr[e][r]);
}
}
return 0;
}
-
목련
살짝은못드리겠는데요
아마 쓰레기값이나오는것은아마 arr배열의 초기값을 지정해주지 않았기 때문일겁니다.
if(arr[a][b] == arr[a][0])여기에서 arr[a][b]의 초기값은 정해주지 않았고 arr[a][0]역시도 초기값을 정해주지않았으니 if 문을 들어갈리가 없죠.(다른 else if)문도 마찬가지일겁니다.
그렇게 아무값도 넣지않고 초기배열만을 그대로 출력하니 쓰레기값이나오는겁니다.
소스 짜서 복사했더니 띄어쓰기 알아보기가 좀... 출력은