gpt4 book ai didi

c - 如何打印数据中的最小值?

转载 作者:行者123 更新时间:2023-11-30 20:17:39 24 4
gpt4 key购买 nike

/*测试平均问题修订#1:编写一个读取相同数据的程序文件如上所述,还计算最小和最大测试分数,如下以及这两个测试的编号。 (例如,如果考试成绩文件中的分数分别为 70、85、99、67 和 83,则测试 #4 的最低测试分数为 67,测试 #3 的最高测试分数为 99。)让您的程序打印出以下内容信息显示到屏幕上。 */

#include <stdio.h>

int main(int argc, char const *argv[])
{

int num, start;

int num_test, score, max=0, min=0, maxi, mini;

FILE*ifp, *ofp;

ifp = fopen("test.in.txt", "r");

ofp = fopen("test.max.txt", "w");

fscanf(ifp,"%d", &num);

for ( start = 1; start <= num; start++)
{
fscanf(ifp,"%d %d", &num_test, &score);

fprintf(ofp,"Test: %d score: %d \n", num_test, score);


if (score > max)

{
max = score;

maxi = num_test;

}


if (score < min)

{
min = score;

mini = num_test;
}

}
fprintf(ofp,"\n\nMax = Test:%d Score: %d\n",maxi, max);

fprintf(ofp,"\nMin = Test:%d Score: %d\n",mini, min);

fclose(ifp);

fclose(ofp);

return 0;

}

最佳答案

这是初始化的问题。您需要根据算法将 max 初始化为可能的最低值(这纯粹是您做到的),并将 min 初始化为可能的最高值(您未能做到这一点) .

初始化 min id 的安全选择是相应数据类型可能的最高值。

对于 int,该值可能是 2^32-1(如果 int 以 32 位表示)。

如果您不想处理巨大的数字,则应该分析您的问题,以了解可能的最大值。这是比较危险的,因为问题的数量可能会改变,然后算法可能会失败。

<小时/>

另一种方法是分两步查找值 - 这可能需要更长的时间,但仍然安全。

第 1 步:找到最大值。

第2步:初始化min = max,然后求最小值。

关于c - 如何打印数据中的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56697805/

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