我有任务我有完整的代码,但下面的代码段如下。
用户必须在以下弹丸之间进行选择。
每个弹丸都有爆炸半径,这是我到目前为止的代码(对于本节):
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}};
任何帮助将不胜感激,但请让我保持其简单易懂,就像我在新来之前所说的那样。
最佳答案
我不确定userProjectileChoice
是什么类型,因此我将假定它与myProjectiles
数组的类型相同。尝试一次为每个属性分配一个,如下所示:userProjectileChoice.projectName = myProjectiles[3].projectileName
userProjectileChoice.blastRadius= myProjectiles[3].blastRadius
自从我用C编程已经有好几年了,但是值得一试。
也许您的意思是分配“索引”而不是整个结构。就像我说的那样,当我不知道userProjectileChoice
的类型时,很难给出正确的答案。也许您的问题出在代码开头的赋值中。因此,如果选择了第四个选择,则应为:userProjectileChoice = 3
关于c - 需要错误消息的协助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39561643/