C LANG使用数组读取行和行

问题描述 投票:0回答:1

所以我有一个学校项目,需要从一个大文本文件中读取值并找到最大和最小数字。此代码适用于数字较小的小型文本文件]

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;
}
c arrays
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.