2017-03-28 22 views
0

配列のサイズを入力できない場合、次のプログラムはどうやってうまく動作していますか?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 ArrayCプログラミング言語基準の特徴は、それがサポートされていなかったC99前に、時間の経過とともに変化している、C99ではC11現在の標準で、それは条件付きの機能になった、必須の機能となりました:

C99にはいくつかの新機能が導入されていますが、その多くは既に複数のコンパイラで拡張機能として実装されています。

  • 可変長配列

だから、私は、あなたが使用しているコンパイラに依存します(その後、実装がサポートする必要はありません条件付き機能にC11に追いやられています)あなたが使用しているコンパイラがこの機能をサポートしていると思います。 このリンクをチェックしてください:https://en.wikipedia.org/wiki/C99

関連する問題