所以我有一个学校项目,需要从一个大文本文件中读取值并找到最大和最小数字。此代码适用于数字较小的小型文本文件]
1
2
3
4
5
我的问题是如何修改它,以便读入并找到包含如下数字的文件的最大值和最小值:
123
456
789
12345
1245676
编辑:数字仅排成一行。但基本上我希望我的数组能同时读取列和行。谢谢
//inputting numbers from a text file, finding max and min in array and siplaying them//
#include <stdio.h>
int main()
{ //Declare variables//
int size_of_array = 10;
int x[10] = {0};
int i;
int max;
int min;
FILE *input_fptr;
//open file for reading//
input_fptr = fopen("input.txt", "r");
if(input_fptr != NULL)
{
//Read in file contents//
for(i=0; i < size_of_array; i++)
{
fscanf(input_fptr,"%d", & x[i]);
}
fclose(input_fptr);
//min and max calculations//
max = x[0];
min = x[0];
for( i=0; i < size_of_array; i++)
{
if(x[i] > max)
{
max = x[i];
}
if(x[i] < min)
{
min = x[i];
}
}
}
//Print results//
printf("Largest element in array is : %d\n", max);
printf("Smallest element in array is : %d\n", min);
return 0;
}
您不需要数组来存储数字。只需一次读取一个数字,然后与当前的最大和最小数字进行比较。
在伪ish代码中类似
int current_min = INT_MAX;
int current_max = INT_MIN;
while (read_one_number(&number))
{
if (number < current_min)
current_min = number;
if (number > current_max)
current_max = number;
}