把m%i=0改成m%i==0就妥了。左值表达式必须是能够接收赋值的表达式,比如++a、a=3、a+=109等等。实质上左值表达式的结果是一个可接收数据变量,如果表达式的值还不确定,那就不能接收数据,也就不能做左值表达式,如a++、a+1、x+y等。m%i不能作左值表达式,因为m%i=0不能表示把0赋给谁,而m%=i可以做左值表达式,因为它的值就是m的值,再给变量m赋一个新值当然是合法的。
第二个FOR循环那儿。ClassAverage是个数组。你把这个数组的头指针指向0(也就是NULL了)。所以这里没报错(但是逻辑上错了)
所以你ClassAverage应该定义为float型,而不是float数组型
即在ClassAverage定义时写为float ClassAverage;
我试着编译了一下,没问题。
逻辑没太细看
还有最后输出"%ld%d%d%d81f\n"是什么意思?如果ID是1 分数分别为10 10 10,那么输出结果为110101081f
表达式必须是可修改的左值,可以改为变量,不能是表达式。
例如:在本文的中,if语句就写错了,d%5 而不是 d5;
再就是 d%7==4,而不是 d%7=4,说的表达式必预是可修改的左值就是这这里。
一个if 语句由一个布尔表达式后跟一个或多个语句组成。
如果布尔表达式为rue,则if语句内的代码块将被执行。如果布尔表达式为false,则if语句结束后的第一组代码(闭括号后)将被执行。
C语言把任何非零和非空的值假定为true,把零或null假定为false。
C语言的运算:
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
以上就是关于vs c++编译程序后提示 表达式必须是可修改的左值 是怎么回事儿啊如下全部的内容,包括:vs c++编译程序后提示 表达式必须是可修改的左值 是怎么回事儿啊如下、左 *** 作必须为左值什么意思、表达式必须是可修改的左值怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)