我有一个包含这些值的文件:
9 10 11 9.5 10.2 9.8 10 8.7 9.3 9.1 9 8.9
4 5 5 4 6 5 4 3 4 5 5 4
8 11 10 8.5 10.7 9 11 8.5 9.4 9 10 9.9
5 5 5 5 5 5 5 5 5 5 5 5
9 9 9 9 9 9 9 9 9 9 9 9
4 5 5 4 6 5 4 3 4 5 5 4
8 9 10 8.5 9.2 8.8 9 7.7 8.3 8.1 8 7.9
7 4 6 6 6 5 6 6 6 6 5 6
10 11 12 10 11.2 9 11 9.7 9 9.1 10 9.9
6 5 6 6 6 5 6 6 6 6 5 6
10 9 11.2 9.5 10.8 9 10.3 8 9.3 9.1 9 8.9
5 4 5 4 6 5 4 3 4 5 5 4
9 10 10.4 8.5 10.2 9.2 11.1 8 9.4 9 10 9.9
6 4 5 5 5 5 5 5 5 5 5 5
10 8 9.6 9 9.6 9.7 9 9 9.7 8 10 9
5 4 5 4 6 5 4 3 4 5 5 4
9 8 10.8 8.5 9.5 8 9.5 7 8.3 8.1 8.8 9
5 4 5 4 6 5 4 3 4 5 5 4
11 10 11 10 11.3 9.4 11 9 9.5 8 10 7
4 5 5 4 6 5 4 3 4 5 5 4
我需要将这些值接受到一个数组中,这样我就可以得到每个其他行中最大的数字,以及其他行中最低的数字。
说我做一个数组
float array[20][12];
这似乎不起作用:
fscanf(ifp, "%f", &main_array[20][12]);
那么如何将这些值接受到我的数组中呢?
答案 0 :(得分:1)
你需要按值读取值,使用循环,你可以做这样的事情:
float array[20][12];
int n = 20 * 12;
int i;
for(i = 0; i < n; i++)
fscanf(ifp, "%f", (&array[0][0] + i));
那是因为你不能一次读取所有文件。
另一种方式,也许更容易理解(因为不使用指针算术)是:
int i, j;
for(i = 0; i < 20; i++)
for(j = 0; j < 12; j++)
fscanf(ifp, "%f", &array[i][j]);