在C prgram中查找一系列数字中的最大值和最小值(我的代码中有错误)

在C prgram中查找一系列数字中的最大值和最小值(我的代码中有错误),c,for-loop,max,min,C,For Loop,Max,Min,这可能是一项非常简单的任务,但我似乎无法理解我做错了什么。我一直在寻找一个确切地说明这个执行过程的答案,但没有找到正确的答案。我的程序应该只运行10次,但它会一直循环,直到我关闭应用程序窗口。我是新手,所以 #include < stdio.h > int main() { int n, sum = 0, c, value; n = 10; int max = 0; int min = 0; printf("Write 10 nu

这可能是一项非常简单的任务,但我似乎无法理解我做错了什么。我一直在寻找一个确切地说明这个执行过程的答案,但没有找到正确的答案。我的程序应该只运行10次,但它会一直循环,直到我关闭应用程序窗口。我是新手,所以

#include < stdio.h >

int main()

{


    int n, sum = 0, c, value;
    n = 10;
    int max = 0;
    int min = 0;



    printf("Write 10 numbers\n");

    for (c = 1; c <= n; c++)
    {
        scanf_s("%d", &value);


        if (c = 1)
        {
            max = value;
            min = value;


        }
        else if (value < max, c <= n)
        {
            max = value;
        }

        else if (value < min, c <= n)
        {
            min = value;
        }
    }

    printf("Biggest number is : %d\n", max);
    printf("Smallest number is : %d\n", min);



    return 0;
}
#包括
int main()
{
int n,和=0,c,值;
n=10;
int max=0;
int min=0;
printf(“写10个数字”);

对于(c=1;c这里您使用赋值运算符
=
而不是comnparison运算符
=

if (c = 1)
查找最小值和最大值的循环可以编写得更简单

for ( c = 1; c <= n; c++ )
{
    scanf_s( "%d", &value );

    if ( c == 1 )
    {
        max = value;
        min = value;
    }
    else if ( max < value )
    {
        max = value;
    }
    else if ( value < min )
    {
        min = value;
    }
}

for(c=1;c好吧,一个没有c==1比较的版本似乎适合我。下面包括测试用例。如果您认为它在合理的输入下失败,请给出一个反例

#include <stdio.h>
#include <limits.h>

int main(int argc, char **argv)
{
int value;
int min=INT_MAX, max=-INT_MAX, n=5;
for (int c = 1; c <= n; c++ )
  {
    scanf( "%d", &value );

    if ( max < value )
    {
      max = value;
    }
    if ( value < min )
    {
      min = value;
    }
  }
printf("min = %d\nmax = %d\n", min, max);
return 0;
}

stackoverflow$ ./minmax
2
-10
99
3
3
min = -10
max = 99
stackoverflow$ ./minmax
1
1 
1
1
1
min = 1
max = 1
#包括
#包括
int main(int argc,字符**argv)
{
int值;
int min=int_MAX,MAX=-int_MAX,n=5;

对于(int c=1;c您应该能够提供帮助。您的if's中有一个非常奇怪的条件表达式,这就是为什么将常量放在第一位被认为是一种好的做法comparisons@Leeor,就我个人而言,我觉得这是毫无意义的。它牺牲了条件的自然流动来停止编译器将捕获的错误。似乎没有int在每次迭代中将c与1进行比较,因此max=-int\u max;min=int\u max在循环之外更可取。int\u max和其他定义在限制中。h@user1666959如果使用一个循环查找最大值或最小值,则必须始终使用条件c==1。您是否声称如果没有c==1位,就无法在一个循环中查找最小值和最大值???@user1666959是的,我想说这句话。@user1666959我知道您现在将开始谈论INT_MAX和INT_MIN,但ut是一个糟糕的方法。无论如何,谢谢您,但我不应该使用任何其他方法