for语句中的赋值能否使用输入的值

比如说我要输入m和n
for(;m%n=0;n--)
{
a=m%n;
}
printf("%d",a);
然后老是报错说左操作数必须为左值,,

m%n=0; 这里 m%n 是表达式,不能做左值。
如果 改成 m%n>=0; 或 (m%n)==0 语法就通过了。
例如:
#include <stdio.h>

int main()
{
int m=4,n=8,a=1;
for (; (m%n)==0;n--){
a = m%n;
}
printf("%d %d %d\n",a,m,n );
return 0;
}
输出: 1 4 8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-28
楼上的回答是可以的,但是我建议在一开始就定义数组大小,这样可以减少内存的使用,同时加快计算速度,特别是数组较大的情况下,比如A=ones(n,1);for ii=1:n......end另外,在matlab里不推荐使用i,j作为循环变量,因为他们本身也是虚数单位。在有些情况下可能会造成混乱。