C언어의 배열 초기화 법 중에 하나입니다.
int score[man][course]={{100,90,80}, {90,80,70}, {80,70,60}, {70,60,50}};
지정된 값으로 초기화
int total[4]={5, };
첫번째 요소는 5로 나머지는 0으로 초기화
int total[4]={5 };
첫번째 요소는 5로 초기화 나머지는 초기화하지 않음
학원에서는 이렇게 안가르쳐 주더군요 교수님도 모르는분이 많고 ......
======>그럼 나는 어떻게 아나????????? 밤낮으로 공부 했죠뭐....흐흐흐흐흐.....
'열심히 노력하는자는 남보다 더 많이 알것이다'라는 석가모니 예수 공자의 말을 믿고요...
그럼
이카루스 님이 쓰신 글 :
: 홍민 님이 쓰신 글 :
: : #include<stdio.h>
: : #define man 4
: : #define course 3
: : void main()
: : {
: : int score[man][course]={{100,90,80}, {90,80,70}, {80,70,60}, {70,60,50}};
: : int total[4]={0, };
: : int average[4];
: : int i,j;
: : int count=0;
: :
: : for(i=0; i<man; i++)
: : {
: : for(j=0; j<course; j++)
: : {
: : total[i]+=score[i][j]; <-----------------이 부분입니다.
: : }
: : }
: : while( count<man )
: : {
: : average[count] = total[count]/course; <--------------------이 부분입니다.
: : printf("<%d subject> sum=%d average=%d\n", count+1, total[count], average[count]);
: : count++;
: : }
: :
: : }
: : 간단한 배열을 통한 성적표만든 프로그램인데요..
: : 위에 int total[4]={0, }; 배열을 초기값으로 선언하지 않으면 쓰레기값이 출력이 됩니다..
: : 근데 int average[4]; 는 초기값선언을 하지 않아도 잘 실행되는데 왜 그런가요?
:
: 저도 아직 초보이지만 답변 드리겠습니다. ^^;;;
:
: 이중 for문에서
:
: total[i]+=score[i][j];
:
: 가 있는데요 현재 total이라는 배열에 있는 값에 score배열의 값을 더해주는 것입니다. 배열을 초기화 해주기 전에는
:
: 그 배열안에 쓰레기값이 들어있습니다. 소스를 보시면 total 이라는 배열에 초기화를 해주시지 않고 초기화 되지 않은
:
: 그 쓰레기 값에 score 배열의 값을 더해주셨으므로 쓰레기 값이 나오게 되는 것입니다. average는 total과는 달리
:
: 쓰레기 값이 들어 있던 배열에 쓰레기 값이 담겨 있는 자신의 값을 사용하지 않고 total[count]/course 값을 넣어
:
: 주었으므로 쓰레기 값은 사라지고 total[count]/course 값이 들어갔으므로 상관이 없는 것입니다. ^^
:
: 이해가 되셨는지 모르겠습니다. 그럼 좋은하루 보내세요
|