小编Aik*_*247的帖子

使用 Scanf 在二维数组中存储输入

我想扫描输入并将其保存在方形二维数组中。

前两位数字保存在单独的变量中,第一个数字是目标数字(此处无关),第二个数字保存在变量m 中,即在这种情况下m = 5。m是方阵的行数/列数。其余的输入应保存在数组中。对于这个特定的输入,我得到了一个分段错误,随机数打印在屏幕上。我使用了一些 printf 语句来跟踪哪里出错了,我注意到第一个循环中的索引i在一个场景中从 2 跳到了 11,对于其他输入,它跳到了 33。感谢您的帮助!我希望我没有遗漏一个明显的错误。

输入:(每行按回车键由前一行分隔。)

42 5

0 3 7 9 10

9 13 20 5 20

12 11 33 0 12

17 39 22 3 18

我的代码:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char* arv[]){

  int target;               // for later processing, irrelevant here
  int m;                    // m = #rows and #columns of array
  int array[m][m];
  scanf("%d %d", &target, &m);
 
  int i, k;
  for(i …
Run Code Online (Sandbox Code Playgroud)

c arrays scanf segmentation-fault multidimensional-array

5
推荐指数
1
解决办法
2万
查看次数