2014-01-23 104 views
0

说,我有数组矩阵matrixA这是2×3和填充为0。如何设置我的循环,使值将被读入,但如果用户只输入3个值,在矩阵matrixA其余3为0?将值读入C++的二维数组?

编辑:

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]; 
     } 
    } 
+1

你知道如何访问它们?并显示您当前的代码。 – herohuyongtao

+0

用我的代码编辑。 –

+0

你的循环对我来说很好。 – herohuyongtao

回答

1

初始化阵列矩阵matrixA以0,然后接受来自用户的值。代码会像下面的东西:

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]; 
    } 
0

我宁愿你的代码为我掉了我的答案,但假设你的问题,并声明,我会说这方面的工作。有一个循环来计算用户输入数字的次数。当用户输入三个数字时;初始化一个行变量在这需要的背景值。然后它基于的次用户估算数字与一个for循环或选择的任何其它方法的量循环。

还为您解答,其余3个数字的问题,我已经提供了以下链接有关阵列未初始化索引

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

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; 
    } 
} 

让我知道是否有帮助.. :)