2011-02-14 3 views
0

배열을 표시하는 방법이 :내가있어

지금 이런 식으로 뭔가 원하는
int i, j, w; 
char *array[50]; 

int main() 
{ 
    array[1]= "Perro"; 
    array[2]= "Gato"; 
    array[3]= "Tortuga"; 
    array[4]= "Girafa"; 
    array[5]= "Canario"; 
    array[6]= "Rata"; 
    array[7]= "Leon"; 
    array[8]= "Tigre"; 
    array[9]= "Rinoceronte"; 
    array[10]= "Mosquito"; 
    for (i=1; i<11; i++) 
    { 

     printf("El elemento %i es %s \n", i, array[i]); 
    } 
    printf("Escoja el elemento deseado"); 
    scanf("%i", &w); 

    int c; 
    scanf("%i",&c); 
    return i; 
} 

: printf와 ("원하는 요소의 %의 C, [w] 배열을)하지만, 왜

실패?를

답변

1

가 문자로 친구 이름 (문자열) (%c), %s를 사용하여 인쇄하지 마십시오. 또한

를들을 만들고 인덱스 0 C 시작에 배열 대신 1에서 시작 이상해과에 쉽게 만들 수 있습니다 자신을 혼란에 빠뜨리고 끝까지지나갑니다.

2
printf("Desired Element %c", array[w]); 

은 문자 (% c)를 인쇄하려고 시도하지만 배열 [w]에 문자열이 포함되어있어 실패합니다.

봅니다 %의 대신 사용 : 디버그 문자열에

printf("Desired Element %s", array[w]); 
0

%c 요소 것은 문자를 인쇄합니다. 당신이 문자열 시도를 인쇄하려면 :

printf("Desired Element %s", array[w]); 
1

아마 그것은 w이 유효 어떠했는지를 확인하는 것을 잊지 마십시오 문자열

printf("Desired Element %d\n", array[w]);

에 대한 %c하지만 %s를 아니기 때문에.

0

% c 대신 printf("Desired Element %s, array[w])을 사용하십시오. 문자가 아닌 문자열을 인쇄하고 있습니다.

0

많은 oddies가 프로그램에 있습니다. 다음은 정리 된 버전입니다.

#include <stdio.h> /* necessary for printf/scanf */ 

#define ARRAY_LENGTH 10 /* use a constant for maximum number of elements */ 

int main() 
{ 
    /* Declare all variables inside main(), at the very top. Nowhere else. */ 
    int i; 
    int desired; /* use meaningful variable names, not x,y,z,etc */ 
    char *array[50]; 


    array[0]= "Perro"; /* arrays start at index 0 not 1 */ 
    array[1]= "Gato"; 
    array[2]= "Tortuga"; 
    array[3]= "Girafa"; 
    array[4]= "Canario"; 
    array[5]= "Rata"; 
    array[6]= "Leon"; 
    array[7]= "Tigre"; 
    array[8]= "Rinoceronte"; 
    array[9]= "Mosquito"; 

    for (i=0; i<ARRAY_LENGTH; i++) /* keep the loop clean */ 
    { 
     printf("El elemento %i es %s\n\n", i+1, array[i]); /* instead, add +1 while printing */ 
    } 

    printf("Escoja el elemento deseado: "); 
    scanf("%i", &desired); 
    getchar(); /* discard new line character somehow */ 

    printf("El elemento %i es %s\n", desired, array[desired-1]); 



    getchar(); /* wait for key press before exiting program */ 
    return 0; /* always return 0 */ 
} 
관련 문제