Я пытаюсь написать простую программу, которая считывает целые числа из файла данных и выводит минимальное и максимальное значение. Первое целое число входного файла укажет, сколько еще целых чисел будет прочитано, а затем целые числа будут перечислены.
Моя программа компилируется без проблем, однако возвращает значения, которые не являются частью набора в моем файле тестовых данных. Может ли кто-нибудь помочь с диагностикой этой проблемы?
int main(){
FILE *fp = fopen("data.txt", "r");
int count;
int num;
int i;
int min = 0;
int max = 0;
fscanf (fp, "%d", &count);
for (i = 0; i < count; i++)
fscanf( fp, "%d", &i);
{
if (num < min)
min = num;
if (num > max)
max = num;
}
fclose (fp);
printf("Of the %d integers, the minimum value is %d and the maximum value is %d \n", count, min, max);}
min
, вероятно, должно бытьINT_MAX
, аmax
, вероятно, должно бытьINT_MIN
. Таким образом, вам не понадобится что-то большее или меньшее, чем 0, чтобы изменить его. Как бы то ни было, файл, полный положительных чисел, даст минимум 0. - person chris   schedule 25.09.2012i
, а не вnum
. Также не требуется особых усилий, чтобы увидеть, что{
находится совершенно не в том месте, и что min и max, начинающиеся с 0, не могут быть правильными. Если вы хотите иметь хоть какую-то надежду на написание пригодных для использования программ, вам необходимо выработать хорошие привычки. - person Jim Balter   schedule 20.09.2014