【发布时间】:2018-12-29 06:49:36
【问题描述】:
它可以工作,但如果您不输入任何小于 0 的数字,它不会打印较小的值并打印 0。
int max = 0;
int min = 0;
int a;
printf("Enter a number:\n");
scanf("%d", &a);
while (a != -1){
if (a < min){
min = a;
}
if (a > max){
max = a;
}
scanf("%d", &a);
}
printf("Your largest number is %d. Your smallest number is %d.", max, min);
【问题讨论】:
-
只有小于零的数字才小于零,所以如果将
min初始化为0,但输入的值都是正数,则无法正确记录最小值。 (如果所有的值都小于-1,你也不会正确初始化max!)在你读取第一个值之后使用min = max = a;会更好。或者,将min初始化为INT_MAX,从<limits.h>和max初始化为INT_MIN。
标签: c if-statement while-loop int