2013-03-09 64 views
1

爲什麼不打印數組我打算使用c而不是C++。我究竟做錯了什麼?我也想知道你可以在char變量中使用哪些字符。無法獲得數組打印在c

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) 
{ 
    int map[4][4] = {1,1,1,1,1,1,11,1,1,1,1,1,1,1,1}; 
    int x, y; 
    for (x = 0; x < 4; x++); 
    { 
    for (y = 0; y < 4; y++); 
    {  
     printf ("%i ", map[x][y]); 
    } 
    printf ("\n"); 
    } 
    return 0; 
} 
+0

當你編譯和運行代碼,會發生什麼? – 2013-03-09 21:33:46

+2

你會得到什麼輸出,它與你想要的有什麼不同? – hyde 2013-03-09 21:33:48

+0

你得到了什麼錯誤? – 2013-03-09 21:33:57

回答

4

段從你的代碼:

for (x = 0; x < 4; x++); 
    { 
    for (y = 0; y < 4; y++); 

這些分號在線路末端。他們的意思是,你的for循環什麼都不做,它們被當作循環體。

+0

謝謝你是這個問題。哇,我怎麼沒有看到...... – Guardian 2013-03-09 21:38:39

+1

@ user2128021爲了避免這個特殊的錯誤:第一,使用自動壓縮器(Visual Studio和其他IDE一樣,而在Linux中,事實上標準的'indent '工具)。 2,使用縮進公約將'{'與'for'放在同一行。然後,如果你在「for」行後面看到一行,你馬上就會知道有什麼地方出錯了。 – hyde 2013-03-09 21:41:13

5

擺脫';'同時在對線路:)

#include <stdio.h> 
#include <stdlib.h> 


int main(int argc, char *argv[]) 
{ 
int map[4][4] = {1,1,1,1,1,1,11,1,1,1,1,1,1,1,1}; 
int x, y; 
    for (x = 0; x < 4; x++) 
    { 
    for (y = 0; y < 4; y++) 
    {  
    printf ("%i ", map[x][y]); 
    } 
    printf ("\n"); 
    } 
    system("PAUSE"); 
return 0; 
} 
0

得到你擺脫分號​​的for循環:

for (x = 0; x < 4; x++) 
    { 
    for (y = 0; y < 4; y++) 
    {  
     printf ("%i ", map[x][y]); 
    } 
    printf ("\n"); 
    }