아마 아래의 소스를 실행시키면 실행이 되지 않을 것입니다.
scanf("%d",array[count]); ------> scanf("%d",&array[count]);
이렇게 되어야 실행이 될 것입니다. 그리고
printf("\n\nLargest value is %d", largest (array , MAX)); // 질문!! 여기서 왜 array 가들어가죠?
라고 물어보셨는데요 뭐 간단히 말하면 biggest 값을 받아오기 위해서입니다. 가장 큰 값을 출력하기위한
연산처리는 largest함수에서 처리하고 있습니다. 다시 말하면 가장 큰 숫자를 찾는 작업을 largest함수에서
해준다는 것입니다. 위 priintf문에서 largest (array , MAX)사용한 것은 맨 아래쪽 함수에 return biggest ;
가 있어서 가장 큰 값을 반환해 주기 때문입니다. 조금 더 쉽게 말해보겠습니다. 위에서 4번째 줄에
int largest( int x[] , int y );
가 있습니다. 이것은 메인 부분에서 scanf("%d",array[count]); 를 이용하여 값을 넣어준 배열 array[count]
를 함수에게 array[count]가 있으시 사용하라고 말해주는 것입니다. 함수에서는 array[count]를 받아주는
부분은 int largest( int x[] , int y ); 에서 int x[]입니다. 배열의 이름이 틀려서 착각하실수도 있지만 굳이 메인에
있는 배열과 이름을 일치 시키지 않으셔도 상관 없습니다. 그냥 함수로 전달할 값의 형식만 맞기만 하면 이상없이
전달되기 때문입니다. 자 그럼 메인에서 배열을 전달해주는 부분은
printf("\n\nLargest value is %d", largest (array , MAX));
부분에 array입니다. 이 소스를 조금만 다르게 고쳐본다면
: #include <stdio.h>
:
: #define MAX 10
:
: int array[MAX] , count , result;
:
: int largest( int x[] , int y );
:
: main()
:
: {
:
: //키보드에서 MAX값을 얻는다
:
: for (count = 0 ; count < MAX ; count ++ )
: {
:
: printf("\nEnter an integer value: ");
: scanf("%d",array[count]);
:
: }
: result=largest(array, MAX); <----------이렇게 해서 리턴 값 biggest 를 받아올 수도 있습니다.
: printf("\n\nLargest value is %d", result); // 질문!! 여기서 왜 array 가들어가죠?
:
: return 0;
:
: }
두번째로
if(x[count] > biggest) // 여기서 무슨뜻인지 모르겠어여
biggest = x[count];
파트는 위에서 말했던 것처럼 x[count]는 즉 array[count]와 같은 것입니다.
한글로 위 소스를 푼다면
만약에 array배열에 현재 biggest에 있는 값보다 큰 값이 있다면 변수 biggest에 있는 값을 array배열에
있는 큰 값으로 바꾸어라.
라는 것이 될 것입니다.
궁금한 것을 제대로 쉽게 설명한지 모르겠네요. 그럼 즐프하세요. ^^*
|