我是C的新手。我遇到了使用while循环查找min和max值的问题。 有人可以告诉我如何在不用随机数初始化最小值的情况下找到MIN值。
#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");
}
答案 0 :(得分:1)
正如@МаркоЛучић所说min=n;
代码也可以max=n;
建议修改:
1-初始化min, max
#include <limits.h>
min = INT_MAX;
max = INT_MIN;
2-测试scanf()
结果。只需要1 scanf()
。
while (scanf("%d", &n) == 1 && n != STOP) {
if(n < min)
min = n;
if (n > max)
max = n;
}
答案 1 :(得分:0)
我正在初始化最小值的问题。正确的代码是:
#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");
}