当我尝试使用带有2个数组的scanf时,我收到错误

时间:2014-03-22 12:26:16

标签: c arrays scanf

我正在尝试使用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的新手

2 个答案:

答案 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值,以获得相同的数组索引值。