它显示[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 ;
2条答案
按热度按时间elcex8rz1#
我想知道为什么它在之前的代码中不起作用。
因为
b1
和b2
是一个struct bus
,编译器不知道如何计算struct bus + struct bus
,编译器只能计算基本类型,如int + int
。qq24tv8q2#
您正在尝试添加
+
structs, 而不是数字。要使二元运算+
工作,您应该引用结构中的实际整数。(Binary表示它是一个接受两个 * 操作数 *(“输入值”)的 * 运算 *。我想你的意思是
请注意,在原始示例中,您添加了两次b1。
此外,如果这是注解
5*14*2
,请在前面写入//
。