Skip to content

Instantly share code, notes, and snippets.

@vadimtsushko
Created November 20, 2012 05:43
Show Gist options
  • Save vadimtsushko/4116253 to your computer and use it in GitHub Desktop.
Save vadimtsushko/4116253 to your computer and use it in GitHub Desktop.
Пример с динамическим массивом
#include <iostream>
#include <cstring>
#include <conio.h>
#include <time.h>
/*15. Задан двумерный массив. Найти сумму элементов первого столбца без одного последнего элемента,
сумму элементов второго столбца без двух последних, сумму элементов третьего столбца без трех последних и т. д.
Последний столбец не обрабатывается. Среди найденных сумм найти максимальную.
*/
using namespace std;
void input( int ** x, int n , int m )
{
srand(time(0));
for ( int i = 0; i < n; i++ )
for ( int j = 0; j < m; j ++ )
{
x[i][j] = rand()%115+1;
}
}
void output( int ** x, int n , int m )
{
for ( int i = 0; i < n; i++ )
{
for ( int j = 0; j < m; j ++ )
{
cout << x[i][j] << " ";
}
cout << endl;
}
}
void summa ( int ** x, int n, int m )
{
int s,max;
max = -1;
for ( int j = 0; j < m-1; j++ )
{
s = 0;
for ( int i = 0; i < n-j-1; i++ )
{
s+= x[i][j];
}
cout << "Сумма в столбце " << j << " = " << s << endl;
max = ( s > max ) ? s : max;
} cout << "Максимальный элемент = " << max;
}
int main()
{ int sum;
setlocale(LC_CTYPE, "Russian");
int n, m, s = 0, i, j, max, k = 0;
//int x [100][100];
cout << "введите размерность :" << endl;
cout << "кол-во строк: "; cin >> n;
cout << "кол-во столбцов "; cin >> m;
cout << endl << "матрица: " << endl;
//Создаем динамический массив заданного параметрами размера
int ** x;
x = new int * [n];
for (int i = 0; i < n; ++i)
{
x[i] = new int [m];
}
input ( x, n, m );
output ( x, n, m);
cout << endl;
summa ( x, n, m );
getch();
//освобождение памяти выделенной под двумерный массив
for (int i = 0; i < n; i++) {
delete []x[i];
}
delete []x;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment