C 什么是无效的初始值设定项?它在我的代码中的什么位置,如何更正它?

C 什么是无效的初始值设定项?它在我的代码中的什么位置,如何更正它?,c,initializer,C,Initializer,我正在运行我的代码,并使用C作为我的语言。我试着做一个简单的游戏,你有一个存货清单,从100美元开始。你通过秘密地为其他玩家做工作来赚钱。但是,我收到一条错误消息,上面写着“无效的初始值设定项”。这是什么?我该如何修复它?这是我的密码: #include<stdio.h> int main() { int player_cash[][3] = 100; int player[3]; int job[][100] = { "Text me th

我正在运行我的代码,并使用C作为我的语言。我试着做一个简单的游戏,你有一个存货清单,从100美元开始。你通过秘密地为其他玩家做工作来赚钱。但是,我收到一条错误消息,上面写着“无效的初始值设定项”。这是什么?我该如何修复它?这是我的密码:

#include<stdio.h>

int main()
{
    int player_cash[][3] = 100;
    int player[3];
    int job[][100] = {
        "Text me the address of player1",
        "I'll donate $100 to the your funds, if you steal the gold from player2 for me"
    };
            if (player_cash[1] > 5);
                do job[0]
        else if(player_cash[1]<5);

        return 0;
}
#包括
int main()
{
int player_cash[][3]=100;
int播放器[3];
int作业[][100]={
“将player1的地址发短信给我”,
“如果你替我从player2那里偷金子,我会捐出100美元给你的基金”
};
如果(玩家现金[1]>5);
执行作业[0]

否则,如果(player\u cash[1]对于初学者来说,
player\u cash
是一个二维数组的声明。您尝试从整数文本初始化它。这不起作用。您的意思是简单地声明一个
int
?如果您只想存储一个数量,您不需要数组,甚至不需要二维数组

声明
int job[][100]
也是如此,但这里您尝试用字符串文本初始化它


在编写C代码之前,你真的应该先读一本书。仅仅敲出一些看起来像C代码的东西是不会有任何效果的。

对于初学者来说,
player\u cash
是一个二维数组的声明。你试着从一个整数文本初始化它。这行不通。你的意思是简单地声明一个
int吗?如果只想存储一个数量,则不需要数组,甚至不需要二维数组

 int player_cash[][3] = 100;
声明
int job[][100]
也是如此,但这里您尝试用字符串文本初始化它

在你尝试写C代码之前,你真的应该先读一本书。仅仅写一些看起来像C代码的东西是不会有任何用处的

 int player_cash[][3] = 100;
声明一个int的2D数组,然后尝试用一个int初始化它。 正确的语法是

 int player_cash[][3] = 
 { 
   {100}
 };
虽然
int-player\u-cash[][3]={100};
也可以正常工作,只是风格上不太正确

int job[][100] = { "Text me 
整数是整数,而不是字符串。所以代码根本没有意义

另外,养成在if语句之后始终使用{}的习惯

if (player_cash[1] > 5);
 do job[0]
因为分号,会被当作你写过的东西吗

if (player_cash[1] > 5)
{}
do job[0]
声明一个int的2D数组,然后尝试用一个int初始化它。 正确的语法是

 int player_cash[][3] = 
 { 
   {100}
 };
虽然
int-player\u-cash[][3]={100};
也可以正常工作,只是风格上不太正确

int job[][100] = { "Text me 
整数是整数,而不是字符串。所以代码根本没有意义

另外,养成在if语句之后始终使用{}的习惯

if (player_cash[1] > 5);
 do job[0]
因为分号,会被当作你写过的东西吗

if (player_cash[1] > 5)
{}
do job[0]

首先,
100
不是二维整数数组的有效初始值设定项。此外,您为作业数组提供的文本对第二个二维数组无效。我建议您阅读本C教程的前几章:首先,您可以注意编译器在错误消息中包含的行号。您还可以花一些时间学习C语言,因为上面的内容与C语言只是模糊不清的相似。@JimBalter有很多这样的例子:“我正在compiler.com上运行我的代码”最近有人问了一些问题,似乎错误信息并不总是尽如人意,例如,OP当然可以从使用真正的编译器开始,如果他希望学习一门难学的语言,比如C@JimBalter抱歉,我应该更仔细地寻找我认为显示compiler.com草率的问题。我是说(一个应被静态拒绝并带有明确错误消息的程序)。我并不是想暗示compiler.com消息总是不好的,只是在回答初学者问题时,这是一种新的、有趣的可能性。首先,
100
不是二维整数数组的有效初始值设定项。此外,您为作业数组提供的文本对第二个二维数组无效。我建议您阅读som本C教程第一章的e部分:首先,您可以关注编译器在错误消息中有用地包含的行号。您还可以花一些时间学习C语言,因为上面的内容与C语言只是模糊不清地相似。@JimBalter有很多类似的东西“我正在compiler.com上运行我的代码”最近有人问了一些问题,似乎错误信息并不总是尽如人意,例如,OP当然可以从使用真正的编译器开始,如果他希望学习一门难学的语言,比如C@JimBalter抱歉,我应该更仔细地寻找我认为显示compiler.com草率的问题。我是说(一个应该被静态拒绝并带有明确错误消息的程序)。我并不是想暗示compiler.com消息总是不好的,只是在回答初学者问题时要记住这是一个新的、有趣的可能性。还有
if(player\u cash[1]>5);do job[0]else if(player\u cash[1]@JimBalter在if之后写分号是C程序员的传统,但是,要停止一遍又一遍地写那个bug,唯一的方法就是写大量的C代码:)资深C程序员开发出这种奇怪的、潜意识的分号反射,并在1秒内发现那个bug:)但问题是,如果先有分号,然后是大括号,那么编译器会告诉你“else语句没有匹配的if”.采用大括号样式并在任何地方都一致使用,将意味着您编写的此类错误要少得多。'if之后的分号是C程序员的传统'——而不是在条件之后。
else if
没有块。
做什么…
?我的观点是,这段代码是jibberish,而不是讨论是否使用{}或者分号…你在我的评论后把这些文字添加到了你的答案中。但是在这一点上,如果你使用自动缩进编辑器,你将永远不会有