2017-03-28 54 views
0

如果我們不能將用戶輸入作爲數組大小,那麼以下程序如何運行正常?C中數組大小的用戶輸入C

#include <stdio.h> 
int main() 
{ 
int size, key = -1, i; 
scanf("%d", &size); 
int A[size]; 
    for(i = 0; i < size; i++) 
    { 
     scanf("%d", &A[i]); 
    } 
    if(A[0] > A[1]) 
     key = 0; 
    else if(A[size-1] < A[size-2]) 
     key = size-1; 
    else{ 
    for(i = 1; i <= size-2; i++) 
    { 
     if((A[i] > A[i+1])|| (A[i] < A[i-1])) 
     key = i; 
    } 
} 
printf("The key is %d at position %d\n", A[key], key); 
return 0;} 
+2

'如果我們不能爲用戶輸入數組'你是什麼意思?您可以。 – Marievi

+0

對不起.....用戶輸入的數組大小 – user1712

+0

但你可以這樣做。 – Marievi

回答

0

Variable-Length Array功能在C編程語言標準發生了變化隨着時間的推移C99之前沒有得到支持,在C99它成爲一個強制性的特徵,在當前的標準C11它成爲了一個有條件的特點:

C99引入了幾個新功能,其中許多已經在多個編譯器中作爲擴展實現:

  • 可變長度陣列(儘管隨後在C11退居到實現不要求支持一個條件的功能)

所以它取決於所使用的編譯器,我認爲你使用的編譯器支持這個功能。 檢查此鏈接:https://en.wikipedia.org/wiki/C99