简体   繁体   English

在C中查找最小值和最大值(while循环)

[英]Finding min and max value in C (while loop)

I am new at C. I am having problems with finding min and max value with while loop. 我是C语言的新手。在使用while循环查找最小值和最大值时遇到问题。 Can somebody tell me how can I find MIN value without initializing min value with random number.. 有人可以告诉我如何在不用随机数初始化最小值的情况下找到最小值。

#include<stdio.h>
#define STOP 0
main()
{
int n, min, max;
printf("unesite niz cijelih brojeva [0 za kraj]: \n");

scanf("%d", &n);
max=0;
min=999999;
while(n!=STOP)
{
    if(n<min)
        min=n;
    if (n>max)
        max=n;
    scanf("%d", &n);
}
printf("max broj je: %d, a min broj je: %d.\n", max, min);
    system("pause");

} }

As @Марко Лучић says min=n; 正如@МаркоЛучић所说的min=n;

Code can also max=n; 代码也可以max=n;

Suggested modifications: 建议的修改:

1- Initialize min, max 1-初始化min, max

#include <limits.h>
min = INT_MAX;
max = INT_MIN;

2- Test scanf() results. 2-测试scanf()结果。 Only 1 scanf() needed. 只需要1个scanf()

while (scanf("%d", &n) == 1 && n != STOP) {
  if(n < min)
    min = n;
  if (n > max)
    max = n;
}

Problem was at line where i was initializing min value. 问题出在我正在初始化最小值的线上。 The right code is: 正确的代码是:

#include<stdio.h>
#define STOP 0
main()
{
int n, min, max;
printf("unesite niz cijelih brojeva [0 za kraj]: \n");

scanf("%d", &n);
max=0;
min=n; //here was the problem
while(n!=STOP)
{
if(n<min)
    min=n;
if (n>max)
    max=n;
scanf("%d", &n);
}
printf("max broj je: %d, a min broj je: %d.\n", max, min);
system("pause");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM