0

我有一个数组。但是当它们在我的while循环中时并没有打印所有值。是给疯狂的一个角色。有任何想法吗。

    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]);
      }
   }
4

5 回答 5

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
于 2013-10-19T03:28:26.097 回答
1

将您的打印更改为 printf("%s type", a[x]); 注意%s用于打印字符串。

于 2013-10-19T03:26:10.920 回答
1

%c是单个字符的格式字符串,但您传递的是指向字符数组的指针 - 即字符串。使用%s

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

您的程序原样通过将格式字符串与参数不匹配而导致未定义的行为。

于 2013-10-19T03:26:43.487 回答
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]);
      }
   }
于 2013-10-19T03:29:01.773 回答
0

它工作正常。

还显示了 [0] 条目。

在此处输入图像描述

于 2013-10-19T03:37:36.557 回答