2015-06-16 27 views
0

它需要n個系列的範圍 - 然後請求該系列的元素。然後,它應該返回最大數量,但它總是返回49.如果我使用gdb我可以說,甚至在這個變量被初始化之前,它的值爲49.我不知道爲什麼以及如何解決這個問題。 我有一個簡單的C程序,像這樣:理解C變量

#include <stdio.h> 

int T[1000]; 

int main(int argc, char *argv[]) 
{ 
    int n; 
    int i; 
    int m; 
    scanf("%d", &n); 

    for (i = 0; i < n; ++i) 
    { 
     scanf("%d", T + i); 
    } 

    for (i = 0; i < n; ++i) 
     if (T[i] > m) 
      m = T[i]; 

    printf("max: %d\n", m); 
    return 0; 
} 
+0

'42'會更有意義.. –

+0

'42'是我每天的工作數量,真的;) – krzyhub

+0

**始終以'-Wall GCC編譯-Werror' 。**你會發現自己對於代碼行爲奇怪的問題提出了更少的問題。 –

回答

2

m在你的程序未初始化。

它初始化爲0

int m = 0; 
+0

就是這樣。謝謝。 10分鐘後,我會批准答案。 – krzyhub

+0

@krzyhub歡迎您。 – ouah

+2

'm = T [0];'在第二個for循環之前會更好,所以如果輸入全部爲負,程序也可以工作。 – mch