我有一个数组。但是当它们在我的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]);
}
}
答案 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 :(得分:1)
将您的打印更改为printf("%s type", a[x]);
请注意%s
用于打印字符串。
答案 2 :(得分:1)
%c
是单个字符的格式字符串,但是您传递的是指向字符数组的指针 - 即字符串。使用%s
:
printf("%s type\n", a[x]);
您的程序因格式字符串与参数不匹配而导致未定义的行为。
答案 3 :(得分: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]);
}
}
答案 4 :(得分:0)
工作正常。
还显示[0]条目。