아직 해결할 수 없었던 매우 기본적인 (당혹 스러울 정도의) 질문입니다.최소 숫자를 찾아서 인쇄하는 기능
나는 사용자가 파일에 입력 한 가장 작은 정수를 호출해야하는 minimum
함수를 만들었습니다. 나는 atoi
도 사용하고 있습니다. 다음과 같이
작업 기능은 다음과 같습니다
int minimum(int number) {
static int minNumber = INT_MAX;
if (number < minNumber) {
minNumber = number;
}
return minNumber;
}
나는 사용자가 이러한 정수를 입력 한 내 파일 읽기입니다 때 다음으로, 나중에 프로그램에서 함수를 호출하고있다. 해결
for (int i = 1; !finished; i++)
{
if (fscanf(fp, "%s", word) < 1)
finished = 1;
else {
number = atoi(word);
minNumber = minimum(number);
printf("\nstring is \t %s\n", word);
printf("integer is \t %d\n", number);
}
}
minimum(number);
아래 제안
편집 나는 이제 다음 올바른 코드를 사용하고-내 문제가 number
항상 가장 작은 것으로 내 마지막 입력을 반환하는 것입니다.
이 정수에 대한 인덱스를 표시하여 가장 작은 숫자의 위치를 결정한다고 가정 해 보겠습니다. 다른 기능을 만드는 것이 갈 길입니까? 아니면 그냥 현재의 기능을 변경하여 수행 할 수 있습니까?
void minimum(int number) {
static int minNumber = INT_MAX;
if (number <= minNumber) {
minNumber = number;
}
printf("min number is %d\n", minNumber);
}
또는 함수에 minNumber
를 전달합니다 : 당신이 minimum()
전화 minNumber
의 값은 항상 INT_MAX
경우
'static int minNumber = INT_MAX;'-'static'에 주목하라. 그리고 'minimum'에 대한 호출은 루프 내부에 있어야합니다. – WhozCraig
자네는 최소 한 번만 최후의 번호로 전화한다. – kaylum
'minimum'은 적어도 for 루프 안에서 호출해야합니다 .... – LPs