如何将无效的操作数修复为Binary +(具有“strike_”和“struct _”)

mftmpeh8  于 2023-03-12  发布在  其他
关注(0)|答案(2)|浏览(89)

它显示[Error]二进制+(具有“struct bus”和“struct bus”)enter code here的无效操作数

struct bus
{int bus;
}b1,b2,b3;
int main()
{ 

printf("Enter bus fair 1");
scanf("%d", &b1.bus);

printf("Enter bus fair 2");
scanf("%d", &b2.bus);

printf("Enter bus fair 3");
scanf("%d", &b3.bus);

expenses = b1+b2+b3; 5*14*2 ;

printf("Travelling expense is; %d", expenses);

return 0;}

做了一些小的改动,显然还没有太多的相关知识。code image
编辑-它工作后,改变了错误行这样,但我仍然想知道为什么它没有工作在以前的代码。

enter code here
    expenses = (b1.bus+b2.bus+b3.bus) ;5*14*2 ;
elcex8rz

elcex8rz1#

我想知道为什么它在之前的代码中不起作用。
因为b1b2是一个struct bus,编译器不知道如何计算struct bus + struct bus,编译器只能计算基本类型,如int + int

qq24tv8q

qq24tv8q2#

您正在尝试添加+structs, 而不是数字。要使二元运算+工作,您应该引用结构中的实际整数。(Binary表示它是一个接受两个 * 操作数 *(“输入值”)的 * 运算 *。
我想你的意思是

expenses = b1.bus + b2.bus + b3.bus;

请注意,在原始示例中,您添加了两次b1。
此外,如果这是注解5*14*2,请在前面写入//

相关问题