gpt4 book ai didi

c - 查找最小数字并打印的函数

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

一个非常基本(且令人尴尬)的问题,我还没有解决。

我创建了一个函数minimum,它在被调用时应该显示用户输入到文件中的最小整数。我也在使用 atoi

工作函数如下:

int minimum(int number) {

static int minNumber = INT_MAX;

if (number < minNumber) {
minNumber = number;
}
return minNumber;

接下来,当我从我的文件中读取用户已输入这些整数时,稍后我将在程序中调用该函数。

编辑我现在按照下面的建议使用以下正确的代码

for (int i = 1; !finished; i++)
{
if (fscanf(fp, "%s", word) < 1)
finished = 1;
else {
number = atoi(word);
minNumber = minimum(number);
printf("\nstring is \t %s\n", word);
printf("integer is \t %d\n", number);
}
}
minimum(number);

已解决 - 我的问题是 number 总是返回我最后输入的最小值。

假设我还想显示这个整数的索引,从而确定最小数字的位置。创建另一个功能是可行的方法吗?或者这可以通过改变目前的功能来完成吗?

最佳答案

当您调用 minimum() 时,minNumber 的值始终为 INT_MAX,请使用 static:

void minimum(int number) {
static int minNumber = INT_MAX;

if (number <= minNumber) {
minNumber = number;
}
printf("min number is %d\n", minNumber);
}

或将 minNumber 传递给函数:

void minimum(int number, int *minNumber) {
if (number <= *minNumber) {
*minNumber = number;
}
printf("min number is %d\n", *minNumber);
}

int minNumber = INT_MAX;
for (int i = 1; !finished; i++)
{
...
// As pointed out by @YuriyIvaskevych, you need to compare
// the number in each iteration of the for loop
number = atoi(word);
minimum(number, &minNumber);
...
}

关于c - 查找最小数字并打印的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871061/

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