我正在尝试使用for
循环将浮点值设置为二维数组。这已被声明为float num[4][7];
到目前为止,这是我的代码:
float num[4][7];
int x;
for(x=0;x<=3;x++) {
printf("Enter number: %d",x);
scanf("%f",cad[x][x]);
}
return 0;
但似乎它没有正常工作,它没有做我之前解释的......
任何帮助将不胜感激,谢谢!
答案 0 :(得分:4)
scanf("%f",cad[x][x]);
改为使用:
scanf("%f", &cad[x][x]);
%f
中scanf
转换规范的参数必须是指向float
的指针。您使用的是float
类型的参数。
答案 1 :(得分:1)
首先,如前所述,有三个问题,当使用scanf()时,你需要指出它将要更新的内容:
// v-----added that
scanf("%f",&cad[x][x]);
其次,初始化一个名为“num”的数组,但是填充一个名为“cad”的数组。因此,改变其中一个,名称必须匹配。
最后,你的循环只会填充总共28个元素中的4个:
//This
float num[4][7];
for(x=0;x<=3;x++) {
scanf("%f",&num[x][x]);
//Will give you:
[%f][ ][ ][ ]
[ ][%f][ ][ ]
[ ][ ][%f][ ]
[ ][ ][ ][%f]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
显然在这个例子中,%f
被你输入的内容所取代。要填充整个数组,你需要有两个for循环,x<=3
(对于列)和{{1 (对于行)
y<=6