我有一项任务。我有完整的代码,但我坚持的片段如下。
用户必须在以下射弹之间进行选择。 每个射弹都有一个爆炸半径,这是我到目前为止的代码(本节):
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}};
任何帮助都会受到赞赏,但请在我刚接触之前按照我的说法理解。
答案 0 :(得分:0)
我不确定userProjectileChoice
是什么类型,因此我假设它与myProjectiles
数组的类型相同。尝试一次分配一个属性,如下所示:
userProjectileChoice.projectName = myProjectiles[3].projectileName
userProjectileChoice.blastRadius= myProjectiles[3].blastRadius
自从我用C编程以来已经好几年了,但它值得一试。
或许你的意思是分配"索引"而不是整个结构。就像我说的那样,当我不知道userProjectileChoice
的类型时,很难找到正确的答案。也许你的问题出在代码开头的赋值中。因此,如果选择第4个选项,那么它应该如此:
userProjectileChoice = 3