По друге ти створюєш масив а[][] ---ДВОВИМІРНИМ, а викликаєш тільки вказівник на рядок, як це розуміти. І ще одне - це що метод "бульбашки" в do{}while(k>0)
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main()
{
srand(time(0));
cout << "vvedit rozmir mas [n][m]\nn = ";
int n = 0;
cin >> n;
cout << "m = ";
int m = 0;
cin >> m;
//створення-динамічного-масиву------------------------------------
int **mas = new int *[n];
for (int i = 0; i <= n - 1; i++) mas[i] = new int [m];
//----------------------------------------------------------------
for (int i = 0; i <= n - 1; i++)
for (int j = 0; j <= m - 1; j++) mas[i][j] = rand()%100 + 1;
for (int i = 0; i <= n - 1; i++)
{
for (int j = 0; j <= m - 1; j++) cout << setw(5) << mas[i][j];
cout << endl;
}
//найшвидший-метод-бульбашки--------------------------------------
int mitka = 0, ccc = 0;
do
{
mitka = 0;
for (int k = 0; k <= n-1; k++)
for (int i = m-2; i >= 0; i--)
if (mas[k][i] > mas[k][i + 1])
{
ccc = mas[k][i];
mas[k][i] = mas[k][i + 1];
mas[k][i + 1] = ccc;
mitka = 1;
}
}while(mitka != 0);
//----------------------------------------------------------------
cout << endl;
for (int i = 0; i <= n - 1; i++)
{
for (int j = 0; j <= m - 1; j++) cout << setw(5) << mas[i][j];
cout << endl;
}
//видаленн-динамічного-масиву-------------------------------------
for (int i = 0; i <= n - 1; i++) delete [] mas[i];
delete []mas;
//----------------------------------------------------------------
return 0;
}
chesser писал(а):
Основная состоит в том, что работаете с матрицей a как с одномерным массивом.
chesser, ни кто не мешает вам работать с двумерным массивом как с одномерным. Массив ТС a[10][10] можно использовать как a[100], просто, в случае с матрицей, это не очень-то удобно.