为什么我的scanf()不对数组上的for循环进行迭代?

时间:2018-10-16 07:14:31

标签: c++ c arrays for-loop

我正在处理1D和2D数组,但是我的scanf没有为我的1D数组循环。这是我当前的代码:

#include <stdio.h>

int main(void)
{
 int row, col, N, M;

 printf("This program counts occurrences of digits 0 through 9 in an NxM array.\n");
 printf("Enter the size of the array (Row Column): ");
 scanf("%d%d", &N, &M);

 int digits[N][M];

 for (row = 0; row < N; row++){
  printf("Enter row %d: ", row);
  scanf("%d", digits[row][0]);
 }
 return 0;
 }

3 个答案:

答案 0 :(得分:0)

检查此

scanf("%d", &digits[row][0]);

您需要添加“&”。这将给出将存储扫描变量的地址。对于单个整数存储在数组中也是如此。

答案 1 :(得分:0)

您在此行中缺少与号:

  

scanf(“%d”,digits [row] [0]);

更正后的代码:

  

scanf(“%d”,&digits [row] [0]);

答案 2 :(得分:0)

scanf的最后一个参数必须是变量的地址,因此,如果您想在这些变量中写一些东西,则需要将其传递给那里的地址,而不是那里的值。

scanf(“%d”,&variable)->传递其地址 scanf(“%d”,variable)->传递其值