|
안녕하세요? 레조입니다.
간단히 적어보겠습니다.
int y는 MAX를 의미하며 몇번 숫자를 입력받아 비교해서 최대값을 구하느냐의
결정을 합니다.
biggest = -12000은 임으로 작은 값을 넣어놓은것 같습니다.
어떤 판단을 할때 그 판단의 결과치가 좋아지려면 평가함수가 잘 만들어 져야합니다.
지금은 평가함수의 기초적 상황같은데... 특별한 의미는 없습니다.
다만 -12000 보다 작은 값들을 10개 넣으면 지금의 largest함수는 쓸모없는 함수이며
이런식으로 평가함수가 구현된 인공지능 프로그램이면 언제 버그가 일어날지 알 수 없으니
최대한 biggest 값을 -12000보다 더 작은 -21억.. 정도는 되어야 하지 않을까 생각합니다.
(아님 다른 의미가 있을지도.. --; 비트패턴이 의미 있게 되어있는지는 모르지만..
그건 아닐거 같습니다. -.-.. 설마.. --;)
즉, 그냥 입력값을 제대로 측정하기위한 스타트 비교값으로 나름데로 작은 값을 넣어놓은것
입니다.(DOS에서 프로그램해서 이렇게 작게 잡았는지도.. 16비트에서는 int가 2byte이니..)
마지막으로 x[]은 int 배열이고 MAX를 첨자로 갖으니 MAX의 의미처럼
입력하고자 하는 숫자만큼의 배열크기가 잡히네요.
10번 입력할 메모리를 잡는 의미일뿐입니다.
참고로,
함수 인자로 배열이 쓰이는데 배열과 포인터의 관계를 이해하시면 내용을
이해하시는도 도움이 될것같습니다.
scanf는 입력되는 변수의 주소를 인자로 받기때문에 배열과 포인터의 관계가
이해의 관건인것 같습니다.
김경래 님이 쓰신 글 :
: largest함수쪽에왜 그렇게 하는지 모르겠숩니다.
: int y를 해놯는데 근데 그 y의 값은 어디에있는지--;;
: 그리구 biggest = -12000이라구 되어있는데
: 특별한뜻이 없이 걍 -12000으로 했는지 아니면 다른 이유가있는지--;
: 그리구 x[] 이거는 갑자기 왜나오는지.
: main 함수에 array이라는 곳에 배열을 써서 10개를 저장시킨다고했는데
: lagest함수에서는 갑자기 x[]를쓰구 -_-;;
: 넘 혼란스럽네여..;;;
: 자세히 설명점 부탁합니다.
:
:
:
:
: #include <stdio.h>
:
:
: #define MAX 10
: int array[MAX],count;
:
: int largest(int x[],int y);
: main()
: {
: for (count =0;count<MAX; count++)
: {
: printf("Enter an integer value:");
: scanf("%d",&array[count]);
:
: }
:
: printf("\n\nLargest value = %d\n", largest(array,MAX));
:
: return 0;
: }
:
: int largest(int x[],int y)
: {
: int count , biggest = -12000;
: for( count=0;count<y;count++)
: {
: if(x[count]>biggest)
: biggest = x[count];
: }
:
: return biggest;
: }
|