这是我的代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int x,y,i,j,k;
char c;
char n_avion[6][20]={'BOING747','AIRBUSA380','LEARJET45','DC10','ANTONOV32','CONCORDE'};
char c_avion[6][2]={'B0','AB','Lj','DC','AN','CO'};
int v_avion[6]={800,950,700,900,560,1400};
int r_avion[]={10000,12000,4500,8000,2500,16000};
printf("\nEntrer LE Code d'Avion s'il vous plait : ");
for(i=0; i<6 ;i++){
printf("%c", n_avion[i]);
}
当我尝试使用 %c
打印 n_avion 时它给了我这个päÿ¼└È
当我尝试使用 %s
打印 n_avion 时它给了我这个70502E
我真正想要的是这个BOING747
请提供任何帮助和感谢
最佳答案
有很多问题:
- 字符串必须包含在
"
之间,而不是'
c_avion[6][2]
应为c_avion[6][3]
您还需要一个字符作为字符串终止符(字符串以 NUL 字符终止) )printf("%c", n_avion[i])
使用了错误的字符串格式说明符,它应该是%s
而不是%c
- 在 printf 格式字符串末尾添加
\n
,否则名称将打印在单行上,不带空格(尝试)
更正的代码:
int main()
{
int x, y, i, j, k;
char c;
char n_avion[6][20] = { "BOING747","AIRBUSA380","LEARJET45","DC10","ANTONOV32","CONCORDE" };
char c_avion[6][3] = { "B0","AB","Lj","DC","AN","CO" };
int v_avion[6] = { 800,950,700,900,560,1400 };
int r_avion[] = { 10000,12000,4500,8000,2500,16000 };
printf("\nEntrer LE Code d'Avion s'il vous plait : ");
for (i = 0; i < 6; i++) {
printf("%s\n", n_avion[i]);
}
}
顺便说一句:我的 Crystal 球告诉你,你迟早需要使用struct
。
其他提示:
不要使用“魔数(Magic Number)”,例如 6
或 3
,而应使用常量。
例如:
#define NAMELENGTH 20
#define SHORTNAMELENGTH 3
#define NBOFPLANES 6
...
char n_avion[NBOFPLANES][NAMELENGTH] = ...
char c_avion[NBOFPLANES][SHORTNAMELENGTH] = ...
...
etc.
关于c - 在c中打印char数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160644/