2013-10-19 87 views
0

我有一個數組。但是,在我的while循環中不打印所有的值。瘋狂成爲一個角色。有任何想法嗎。陣列C中的存儲字符不能正常工作

int x = 0; 
    char a[3][20]; 


    strcpy(a[0], "Tires"); 
    strcpy(a[1], "Lights"); 
    strcpy(a[2], "Seats"); 

    while(statement here) 
    { 

     for(x = 0; x< 3; x++) 
     { 
     printf("%c type", a[x]); 
     } 
    } 
+1

怎麼樣發佈一些真實的,工作代碼,不具有的東西,比如'而(在這裏的講話)'的呢? –

+0

你爲什麼試圖打印一個字符串作爲字符? –

回答

3

你的printf應該是這樣的:

printf("%s type\n", a[x]); 

因爲你的數組中的元素都是字符串。

改變printf語句喜歡你的輸出上面後:

輸出:

Tires type 
Lights type 
Seats type 

可以刪除\n在我添加如果你喜歡printf。在這裏的情況是輸出:

Tires typeLights typeSeats type 

這裏是我的代碼:(輪胎應在此執行力度顯示)

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

int main(){ 
int x = 0; 
char a[3][20]; 


strcpy(a[0], "Tires"); 
strcpy(a[1], "Lights"); 
strcpy(a[2], "Seats"); 

while(1) // i left in this while as may be using it for something that you haven't shown in your code. 
{  // But if you are not using while get rid of it .. its unnecessary 

    for(x = 0; x< 3; x++) 
    { 
     printf("%s type\n", a[x]); 
    } 
    break; 
} 

return 0; 

}

這裏是這段代碼是如何運行:

Notra:Desktop Sukhvir$ gcc -Werror -Wall -g -o try try.c -std=c99 
Notra:Desktop Sukhvir$ ./try 
Tires type 
Lights type 
Seats type 
1

打印更改爲printf("%s type", a[x]); 注意%s是打印字符串。

+0

不顯示a [0]條目。 – Apollo

+0

@Apollo看到我的回答,看代碼 – sukhvir

1

%c是單個字符的格式字符串,但是您將指針傳遞給一個字符數組 - 即字符串。使用%s

printf("%s type\n", a[x]); 

你的程序如通過不匹配格式字符串與參數會導致不確定的行爲。

+0

的輸出是不是顯示任何想法的[0]條目? – Apollo

+1

鑑於你已經顯示的代碼? No. –

+1

@Apollo *什麼*不顯示'a [0]'?你的代碼或這個答案中的代碼? –

0
int x = 0; 
    char a[3][20]; 


    strcpy(a[0], "Tires"); 
    strcpy(a[1], "Lights"); 
    strcpy(a[2], "Seats"); 

    while(statement here) 
    { 

     for(x = 0; x< 3; x++) 
     { 
     printf("%s type", a[x]); 
     } 
    } 
0

其工作精細。

a [0]條目也正在顯示。

enter image description here

+0

當然我們需要刪除'while'的東西。 – User42

+2

Arhhhh,我的眼睛... – this

+2

誘惑爲免費不必要的截圖downvote。 –