gpt4 book ai didi

c - C中文件的最大和最小数量

转载 作者:太空宇宙 更新时间:2023-11-04 05:25:45 25 4
gpt4 key购买 nike

我有一个文件,其中包含以空格分隔的数字并输入。我想找到最大值和最小值:

#include <stdio.h>
#include <conio.h>
int main()
{
char nums[500];
int min,max,i,a;
FILE * file;
file = fopen ("test.txt", "r");
i=0;
while( fscanf(file, "%d,", &a) > 0 )
{
nums[i++] = a;
}



for(i=0; i<=sizeof(nums); i++){

if (nums[i]>max) max=nums[i];
if (nums[i]<min) min=nums[i];

}
printf("Maximum: %d\n", max);
printf("Minimum: %d", min);

fclose (file);
getch();
}

我总是得到:

Maximum: 2686820 
Minimum: -128

好的,所以我改变了char nums[500]int nums[500] .我初始化了 max=0min=INT_MAX (使用 <limits.h>)。 它仍然给我一个随机值。

如果文件中的数字发生变化,我将如何前进?有没有一种方法可以使用文件中数字的特定长度来初始化数组?

最佳答案

您没有初始化 minmax 变量。未初始化的非静态局部变量,例如您的 minmax 变量,具有不确定 值,实际上它们看起来是随机的。在没有初始化的情况下使用它们会导致 undefined behavior .

您也没有初始化所有数组,这意味着您没有初始化的值具有不确定的值。

雪上加霜的是,您还超出了数组的范围,这也会导致未定义的行为。

哦,如果您从文件中读取的值大于 char 所能容纳的值,它将被截断。

关于c - C中文件的最大和最小数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29064189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com