‘壹’ c语言 关于赋值错误的问题
if((a<=b)&&((b-a+1)<=N)&&(((a+b)*(b-a+1))/2=M))
这句语句错了,我不知道你是不是想写成(((a+b)*(b-a+1))/2==M)(=变成==)
这个的错误是,等号前面是表达式,表达式的结果是一个临时变量,你把M赋值给一个临时变量,肯定错了。临时变量不能做左值
要不改成==,表示相等,如果就是赋值,把M写前面就可以了,把运算的值赋给M
‘贰’ c语言常见的赋值错误。。。
第二个是对的 char c = 32;
其他两个是错误的。
int n1=n2=10; 这个n2声明了吗??n2是什么类型的元素。
int n2=10;
int n1=n2; //这样是对的。
int n1,n2;
n1=n2=10; //这样也是对的。因为,n2在前面都声明了。
float f=f+1.1; //后面的这个f是什么?从哪里来的?代表的值是多少?这些编译器都不知道。
那么即使这样正确了,f的值也是不可预测的。所以,这个也不正确。
在C/C++中,变量都是先声明,后使用。