我必须使用哨兵控制的重复来找到最大值和最小值。
“maximum”无法正常工作。任何人都可以帮我解释一下我的代码中有什么问题吗?
#include<stdio.h>
int main() {
int number;
int min;
int max;
do {
printf("Enter a number (-1 to quit): ");
scanf("%d",&number);
if( number >= 0 ) {
if(number < min )
min = number;
if( number > max )
max = number;
}
else if( number < 1 )
printf("the number is not valid \n");
}
while( number != -1 );
printf("Minimum=%d\n",min);
printf("Maximum=%d\n",max);
system("pause");
return 0;
}
答案 0 :(得分:2)
未初始化的变量值为2674276,所有数字都较小,因此您的分数很好
但没有数字比这大,所以这是你的最大值。
您需要使用第一个数字
初始化您的最小值和最大值我会做像
这样的事情max = -1
min = -1
do {
printf("Enter a number (-1 to quit): ");
scanf("%d",&number);
if( number >= 0 ) {
if(max == -1)
{
max = number //Means it's the first time so your max and min are the first number
min = number
}
else
{
if(number < min )
min = number;
if( number > max )
max = number;
}
}
else if( number < 1 )
printf("the number is not valid \n");
}
while( number != -1 );