有人可以解决我的问题并告诉我在哪里失败了吗? 我正在学习,我无法继续学习。
#include<stdio.h>
int main()
{
int i, j;
char *caract[][] = { {"Bandeira",1,10},
{"Superior",2,1,1},
{"Pele dura",3,2,2},
{"Armadura",4,2,3},
{"Faca",5,1,1},
{"Espada",6,2,2},
{"Agressao",7,1,1},
{"Ecologico",8,1,1},
{"HeatSeeker",9,1,1},
{"BuildSeeker",10,1,1},
{"walker",11,1,1},
{"Remedio",12,2,1},
{"SecondChance",13,3,0} };
for(i=0; i<13; i++)
{
for(j=0; j<3; i++)
printf("\n%c\n", caract[i][j]);
j=0;
}
}
答案 0 :(得分:2)
这不是PHP或javascript,你不能只声明具有多种类型的数组,并期望编译器为你完成工作。您必须使用结构来定义每个元素的内容。
#include <stdio.h>
#include<stdio.h>
struct INeedToDoMyOwnHomework
{
const char *string;
int i1;
int i2;
int i3;
};
int main()
{
int i, j;
struct INeedToDoMyOwnHomework thingarray[] = { {"Bandeira",1,10},
{"Superior",2,1,1},
{"Pele dura",3,2,2},
{"Armadura",4,2,3},
{"Faca",5,1,1},
{"Espada",6,2,2},
{"Agressao",7,1,1},
{"Ecologico",8,1,1},
{"HeatSeeker",9,1,1},
{"BuildSeeker",10,1,1},
{"walker",11,1,1},
{"Remedio",12,2,1},
{"SecondChance",13,3,0} };
for(i=0; i<13; i++)
{
printf("\n%s\n", thingarray[i].string);
}
}
答案 1 :(得分:2)
你有两个问题,都与caract
的声明有关。
首先,您不能将两个数组维度都留空;您必须指定至少最外层维度:
char *caract[][N] = {...}; // inner dimension determined by number of elements in the initializer
其次,您的初始值设定项与caract
数组的类型不匹配;您已将其声明为char *
的二维数组,但您的初始值设定项是包含char *
加三个整数字段的记录数组。
答案 2 :(得分:0)
每个字符串都应该在ob.~a();
中。我认为你的代码应该是这样的:
""
了解C / C ++中的二维数组,了解它们如何在您的书籍或其他地方发挥作用。