Я пытаюсь суммировать каждый столбец в 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;
}
Вы показываете до последнего столбца. Если вы хотите только первые 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;
}
Кроме того, в подпрограмме добавить, не индексируется правильно
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);
}
Других решений пока нет …