1

私は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;
}
4

1 に答える 1

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

また、ルーチン add では、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);
}
于 2014-02-16T05:28:13.143 に答える