将值读入C ++的2d数组?

时间:2014-01-23 03:18:22

标签: c++

假设我有阵列MatrixA,它是2x3并填充为0.如何设置循环以便将值读入其中但如果用户只输入3个值,则MatrixA中剩余的3个为0?

编辑:

const int Q = 2;
const int S = 3;
int matrixA[Q][S] = {0};
for(int i = 0; i < Q; i++){
        for(int j = 0; j < S; j++){
            cin >> matA[i][j];
        }
    }

3 个答案:

答案 0 :(得分:1)

使用0初始化MatrixA数组,然后接受来自用户的值。代码如下所示:

int iOuter = 0;
int iInner = 0;
for (iOuter = 0; i <2; iOuter++)
   for (iInner = 0; i < 3; iInner++)
   {
      MatrixA[iOuter][iInner] = 0;
      cin >> MatrixA[iOuter][iInner];
   }

答案 1 :(得分:0)

我宁愿你有代码让我为我的答案而努力,但假设你的问题和陈述,我会说这个。有一个循环,其中计算用户输入数字的次数。当用户输入三个数字时;初始化一个行变量,取值为2.然后根据用户使用for循环或您选择的任何其他方法估算数字的次数来循环它。

另外,为了回答你关于其余3个数字的问题,我提供了一个关于数组未初始化索引的链接

Why is int array not initialized to zeros in C++?

答案 2 :(得分:0)

const int Q = 2;
const int S = 3;
int flag = 0;
int matrixA[Q][S] = {0};
for(int i = 0; i < Q; i++){
    for(int j = 0; j < S; j++){
        matA[i][j] = 0;
    }
 }

for(int i = 0; i < Q; i++){
    for(int j = 0; j < S; j++){
        if(getline(cin, matA[i][j])){

        }
        else{
            flag = 1;
            break;
        }
    }
    if(flag == 1){
        break;
    }
}

如果有帮助,请告诉我.. :)