我正在尝试使用scanf为2个数组赋值,一个用于x坐标,另一个用于y,我正在使用此代码:
for (i1=1;i1<n;i1++) {
scanf ("%f%f",&(arx[i1], ary[i1]));
}
但是当我执行时我得到了这个错误:
prog.c: In function ‘main’:
prog.c:11:25: warning: left-hand operand of comma expression has no effect [-Wunused- value]
scanf ("%f%f",&(arx[i1], ary[i1]));
^
prog.c:11:16: error: lvalue required as unary ‘&’ operand
scanf ("%f%f",&(arx[i1], ary[i1]));
所以我不知道我在这里做错了什么,我是C的新手
答案 0 :(得分:4)
更改
scanf ("%f%f",&(arx[i1], ary[i1])); // Not a valid syntax
到
scanf ("%f%f",&arx[i1], &ary[i1]);
您需要为&
和arx[i1]
中的每一个应用ary[i1]
运算符,否则,
中的(arx[i1], ary[i1])
将被编译器解释为comma operator因此它将返回一个r值。你应该知道一元&
的操作数必须是l值。
答案 1 :(得分:2)
您必须在代码中更改以下内容----
scanf ("%f%f",&arx[i1], &ary[i1]);
通过使用上面的语句,您可以获得2个不同数组的2值,以获得相同的数组索引值。