如何显示数组

时间:2011-02-14 12:34:47

标签: c

我有这个:

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(“Desired Element%c,array [w]);但是它失败了,为什么?

6 个答案:

答案 0 :(得分:2)

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

将尝试打印一个字符(%c),但由于array [w]包含一个字符串,它将失败。

尝试使用%s代替:

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

答案 1 :(得分:1)

不要将朋友姓名(字符串)打印为字符(%c),请使用%s

此外,C中的数组从索引0开始,使它们从1开始,而不是很奇怪,可能会让你更容易混淆自己和访问结束。

答案 2 :(得分:1)

可能是因为字符串不是%c而是%s

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

不要忘记检查w是否有效。

答案 3 :(得分:0)

调试字符串中的%c元素打印一个字符。如果要打印字符串,请尝试:

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

答案 4 :(得分:0)

使用printf("Desired Element %s, array[w])代替%c。你打印的是字符串,而不是字符。

答案 5 :(得分:0)

该计划有许多奇怪之处。这是一个清理版本。

#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 */
}