2014-09-20 48 views
0

我写了下面的代码:迭代程序

#include <stdio.h> 

/* max_number.c: outputs the largest number of five numbers entered */ 

void main(void) { 
    int i, num, max; 

    for (i = 1; i <= 5; i++) { 
    printf("Enter a number: "); 
    scanf("%d", &num); 

    if (num >= max) 
     max = num; 
    } 
    printf("The maximum number is %d\n", max); 
} 

当我与任何类型的数据运行程序我不断地得到“最大数量为14”。有人可以请我指出我做错了什么吗?谢谢!

回答

4

变量max未初始化。

尝试

int i, num, max = INT_MIN; 
+0

没错。 14必须来自某个确定性的地方,但这是未初始化的价值。 – Holly 2014-09-20 20:43:17

+0

有趣。为什么不将max初始化为一个值会导致程序给我这种输出?谢谢! – user3727648 2014-09-20 20:46:06

+0

@ user3727648未初始化的变量仍具有一定的价值。如果'max'在你的情况下恰好有值'14',我不会感到惊讶。如果你输入的内容少于或等于'14',那么这是最终结果。 – AlexD 2014-09-20 20:47:22