Создать прямоугольную матрицу, размерность которой вводится с клавиатуры.
Требуется дополнить ее до квадратной. Заполнить новые элементы матрицы нулями.
Результат вывести на экран. Использовать функцию malloc.
C/C++
Помогите пожалуйста с задачей по программированию на С++.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int n,m,max;
int ** A;
do
{
cout << "Введите количество строк: ";
cin >> n;
} while(n < 1);
do
{
cout << "Введите количество столбцов: ";
cin >> m;
} while(m < 1 || n == m);
if(n > m) max = n;
else max = m;
A = (int **) malloc(max * sizeof(int*));
for(int x = 0; x < max; x++) A[x] = (int*) malloc(max * sizeof(int));
srand(time(nullptr));
rand();
for(int x = 0; x < n; x++)
{
for(int y = 0; y < m; y++)
{
A[x][y] = rand() % 15 + 1; // заполняем случайными значениями
cout << A[x][y] << '\t';
}
cout << endl;
}
cout << endl;
// дополнение нулями
for(int x = 0; x < max; x++)
{
for(int y = 0; y < max; y++)
{
if(x > n || y > m) A[x][y] = 0;
}
}
// выводим квадратную матрицу на экран
for(int x = 0; x < max; x++)
{
for(int y = 0; y < max; y++)
cout << A[x][y] << '\t';
cout << endl;
}
if(A == (int**) nullptr) return 1;
for(int x = 0; x < max; x++)
{
if(A[x] == (int*) nullptr) return 1;
free(A[x]);
A[x] = (int*) nullptr;
}
free(A);
A = (int**) nullptr;
return 0;
}
#include <ctime>
using namespace std;
int main()
{
int n,m,max;
int ** A;
do
{
cout << "Введите количество строк: ";
cin >> n;
} while(n < 1);
do
{
cout << "Введите количество столбцов: ";
cin >> m;
} while(m < 1 || n == m);
if(n > m) max = n;
else max = m;
A = (int **) malloc(max * sizeof(int*));
for(int x = 0; x < max; x++) A[x] = (int*) malloc(max * sizeof(int));
srand(time(nullptr));
rand();
for(int x = 0; x < n; x++)
{
for(int y = 0; y < m; y++)
{
A[x][y] = rand() % 15 + 1; // заполняем случайными значениями
cout << A[x][y] << '\t';
}
cout << endl;
}
cout << endl;
// дополнение нулями
for(int x = 0; x < max; x++)
{
for(int y = 0; y < max; y++)
{
if(x > n || y > m) A[x][y] = 0;
}
}
// выводим квадратную матрицу на экран
for(int x = 0; x < max; x++)
{
for(int y = 0; y < max; y++)
cout << A[x][y] << '\t';
cout << endl;
}
if(A == (int**) nullptr) return 1;
for(int x = 0; x < max; x++)
{
if(A[x] == (int*) nullptr) return 1;
free(A[x]);
A[x] = (int*) nullptr;
}
free(A);
A = (int**) nullptr;
return 0;
}
Похожие вопросы
- Помогите пожалуйста сделать задачу по программированию C++
- Программирование С++. Помогите, пожалуйста, решить задачу.
- Помогите пожалуйста с задачей на c++, если кто-нибудь захочет помочь.
- Помогите пожалуйста решить задачу на языке С#.
- Помогите пожалуйста составить задачу на программе С++
- Помогите пожалуйста решить задачу по с++
- Помогите пожалуйста решить задачу на Си
- Помогите пожалуйста с задачей по С++
- Помогите, пожалуйста, решить задачу.
- Помогите пожалуйста доделать задачу на языке СИ!!!
Ещё не понятно, если язык C++, то почему должна использоваться функция языка Си malloc() ?
Может, всё-таки, язык Си?