2016-08-02 71 views
-1

此代碼片段用於產生模式。陣列類型具有用於模式匹配的不完整元素類型

它顯示「數組類型有不完整的元素類型」錯誤!哪裏出問題了?

int main(){ 
int n; 
char a[][]; 
scanf("%d",&n); 

for (int i =0; i<n; i++) 
{ 
for (int j=0; j<i; j++) 
    { 
     if(i>=j) 
      a[i][j] = "#"; 
     else 
      a[i][j]=" "; 
    } 
} 
return 0; 
} 
+4

您是否投入了一些時間來查看哪條線有錯誤? –

+1

您的陣列沒有大小。 –

+3

@Linus Choudhury指定使用哪種語言。 –

回答

0
char a[][]; 

你並不確定在聲明數組的大小(這就是爲什麼錯誤)。你需要在聲明數組時聲明大小。

char a[10][10]; // or something 

如果你想讓動態大小使用指針或使用VLA的。

1

陣列

char a[][]; 

的該聲明是無效的。每個維度中的元素數目是未知的。

如果它是一個C程序,那麼你可以使用一個可變長度的數組。例如

int main(void) 
{ 
    int n; 

    scanf("%d",&n); 

    char a[n][n]; 

    //... 

要考慮到這種情況

if(i>=j) 

沒有意義,因爲內部循環就好

for (int j=0; j<i; j++) 
       ^^^^ 

定義,這是我始終是大於j內更大循環體。

相關問題