需要提供错误消息的帮助

时间:2016-09-18 19:15:28

标签: c

我有一项任务。我有完整的代码,但我坚持的片段如下。

用户必须在以下射弹之间进行选择。 每个射弹都有一个爆炸半径,这是我到目前为止的代码(本节):

userProjectileChoice = myProjectiles[3]; 

myProjectiles[0].projectileName = "cannonBall"; 
myProjectiles[0].blastRadius = 10; 

myProjectiles[1].projectileName = "highExplosiveShell"; 
myProjectiles[1].blastRadius = 1; 

myProjectiles[2].projectileName = "mortarBomb"; 
myProjectiles[2].blastRadius = 1000; 

我需要使用结构,因为它是必需的。 错误消息为:incompatible types when assigning to type int from type struct

包含以下内容,以便您可以查看上述代码所指的内容。

弹丸名称尚未声明,我是否在上述编码声明?

struct Projectile
{
  char name[40];
  float blastRadius;
};

float blastRadius;
double cannonBall = 0;
double highExplosiveShell = 1;
double mortarBomb = 2;

struct Projectile myProjectiles[3] = {{"cannonBall",0},{"highExplosiveShell", 1},{"mortarBomb", 2}};

任何帮助都会受到赞赏,但请在我刚接触之前按照我的说法理解。

1 个答案:

答案 0 :(得分:0)

我不确定userProjectileChoice是什么类型,因此我假设它与myProjectiles数组的类型相同。尝试一次分配一个属性,如下所示: userProjectileChoice.projectName = myProjectiles[3].projectileName userProjectileChoice.blastRadius= myProjectiles[3].blastRadius

自从我用C编程以来已经好几年了,但它值得一试。

或许你的意思是分配"索引"而不是整个结构。就像我说的那样,当我不知道userProjectileChoice的类型时,很难找到正确的答案。也许你的问题出在代码开头的赋值中。因此,如果选择第4个选项,那么它应该如此: userProjectileChoice = 3