在2D数组中添加列

时间:2014-02-16 04:45:17

标签: c++ arrays multidimensional-array dynamic-columns

我正在尝试总结我的每一列到第7行,但我无法弄清楚如何显示如下:

   100   101   102   103   104   105   
   106   107   108   109   110   111  
   112   113   114   115   116   117   
   118   119   120   121   122   123  
   124   125   126   127   128   131   
   560   565   570   575   580   587 

此表的列需要总结到数组的最后一行。 这就是我想出的:

//Libraries
#include<ctime>
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
//Global constants
   const int ROWS=7, COLS=7;
//function prototypes
void add(int [][COLS]);
void prntAry(int [][COLS]);
//execution begins here
int main(int argc, char** argv){
   //Declare Variables

   //fill array
   int array[ROWS][COLS]={{100,101,102,103,104,105,0},                            
                          {106,107,108,109,110,111,0},
                          {112,113,114,115,116,117,0},
                          {118,119,120,121,122,123,0},
                          {124,125,126,127,128,131,0},
                          {0,0,0,0,0,0}};

    add(array);
    system("Pause");
   return 0;
}
void add(int a[][COLS]){
    cout<<endl;
    int i=0;
    for(i;i<ROWS;i++)
        for(int row=0;row<ROWS;row++){
        a[i][7]+=a[i][row];
    }
        prntAry(a);
}
void prntAry(int a[][COLS]){
    cout<<endl;
    for(int row=0;row<ROWS;row++){
        for(int col=0;col<COLS;col++){
            cout<<setw(4)<<a[row][col];
        }
        cout<<endl;
    }
    cout<<endl;
}

1 个答案:

答案 0 :(得分:2)

您将显示到最后一列。如果您只想要前6列

void prntAry(int a[][COLS]){
    cout<<endl;
    int lastcol = COLS - 1;
    for(int row=0;row<ROWS;row++){
        for(int col=0;col<lastcol;col++){
            cout<<setw(4)<<a[row][col];
        }
        cout<<endl;
    }
    cout<<endl;
}

此外,在例程添加中,a未正确索引

void add(int a[][COLS]){
    cout << endl;
    int lastcol = COL - 1;
    for (int row = 0; row < ROWS; row++) {
       for (int col = 0; col < lastcol; ++col)
          a[row][lastcol] += a[row][col];
    }
    prntAry(a);
}