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



我是c的新手,我在寻找while循环的最小值和最大值时遇到了问题。谁能告诉我,我怎么能找到最小值没有初始化最小值与随机数..

#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");

}

问题出现在初始化最小值的行。正确的代码是:

#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");
}

@МаркоЛучић说min=n;

代码也可以max=n;

建议修改:

1- Initialize min, max

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

2-检测scanf()结果。只需要一个scanf()

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

最新更新