包括以下头文件:
#include <limits.h>
...然后更改以下内容:
int i, maximum, minimum, number;
... 至:
int i, maximum, minimum, number;
maximum = INT_MIN;
minimum = INT_MAX;
...并更改以下内容:
maximum = ( number > maximum );
minimum = ( number < minimum );
... 至:
maximum = (number > maximum) ? number : maximum;
minimum = (number < minimum) ? number : maximum;
...整个程序可以写成如下:
#include <limits.h>
#include <stdio.h>
int main( void ) {
int maximum = INT_MIN,
minimum = INT_MAX,
number;
int const inputs_upperbound = 5;
for ( int i = 0; i < inputs_upperbound; i++ ) {
printf( "Enter number %d: ", i );
scanf( "%d", &number );
if ( number > maximum ) maximum = number;
if ( number < minimum ) minimum = number;
}
printf( "The minimum number was %d, and the maximum number was %d.\n", minimum, maximum );
return 0;
}
评论:
逻辑运算符>
and<
返回true
或false
(因此任何非零整数,1 代表true
或 0 代表false
)。您打算做的是根据该结果改变maximum
andminimum
值,因此需要?
and:
运算符。或者,您可以使用控制流语句if
,如下所示:
if ( number > maximum ) maximum = number;
if ( minimum < minimum ) minimum = number;
您还应该让您的main
函数通过使用特殊参数指定不应将任何参数传递给它void
,如下所示:
int main( void ) {
// ... code.
}
...来自 C11 规范 6:11:6(第 179 页)
使用带空括号的函数声明符(不是原型格式参数类型声明符)是一个过时的特性。