我必须使用哨兵控制的重复来找到最大值和最小值。
“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;
}
最佳答案
未初始化的变量的值为 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 );
关于c - 最大和最小 - 哨兵控制的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257938/