c - 查找多个整数之间的最小值和最大值

标签 c

在 Stackoverflow 上在线查看此问题的解决方案 https://stackoverflow.com/a/19200031/3185410我试图通过将 max 设置为 -infinity 并将 min 设置为 +infinity 来提出另一种解决方案。 @haccks 此处的代码运行良好。

#include <stdio.h>

int main()
{
int num, max, min;

printf ("Enter four numbers: ");
scanf ("%d", &num);
max = min = num;

for (int i = 0; i < 3; i++)
{ 
    scanf ("%d", &num);
    if (max < num)
        max = num;
    else if (min > num)
        min = num;
}

printf ("\n%d %d", max, min);
return 0;
}

这是我想出的:

#include <stdio.h>
#include <limits.h>
void main()
{
int max,min,num,i;
min=INT_MAX;
max=INT_MIN;
for (i=0;i<=3;)
{
    i++;
    printf("Enter number %d : ",i);
    scanf("%d",&num);
    if (num>max) max=num;
    else if (num<min) min=num;
}
printf("max is %d and min is %d",max,min);
}

我做错了什么?

最佳答案

如果用户输入 5 那么 6 你有:

对于 5 : 5>-inf => 最大值 = 5

对于 6 : 6>5 => 最大值 = 6 但后来 min 变成了 5,但它仍然是 INT_MAX。

如果您使用 if 而不是 else if,您的性能会下降,但我认为输出正确(我现在无法测试)。

关于c - 查找多个整数之间的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066084/

相关文章:

谁能解释一下这段C代码吗?

c - 将 C 程序翻译成其他编程语言

c - 如何在不打印 (“pause” 的情况下执行系统 ​​ "Press enter to continue..."?

c - 生产者消费者问题:posix mutex got locked twice when using condition variable?

c - 将指针传递给 C 中的函数

c - 如何产生多个 child ,每个 child 做不同的事情?

c - 前序迭代遍历

C - pow 函数意外行为

c - 为什么 yacc 在退出时有内存泄漏?

c - inet_ntoa转换问题