C/C++
Помогите решить задачу на C++
Составить программу формирования матрицы, число строк и столбцов которой определяется как случайное натуральное число в промежутке [3, 8], а элементы - случайные целые числа от -50 до 50. Заменить неотрицательные числа полученной матрицы единицей, а отрицательные - нулем.
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
using namespace std;
int main() {
srand(unsigned(time(nullptr)));
auto n = RAND(3, 9);
auto m = RAND(3, 9);
auto matrix = new int* [n];
for (auto i = 0; i < n; ++i) {
matrix[i] = new int[m];
for (auto j = 0; j < m; ++j) {
matrix[i][j] = RAND(-50, 51);
cout << setw(4) << matrix[i][j] << ' ';
}
puts("\n");
}
puts("");
for (auto i = 0; i < n; ++i) {
for (auto j = 0; j < m; ++j) {
matrix[i][j] = matrix[i][j] < 0? 0 : 1;
cout << setw(4) << matrix[i][j] << ' ';
}
puts("\n");
}
system("pause > nul");
}
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
using namespace std;
int main() {
srand(unsigned(time(nullptr)));
auto n = RAND(3, 9);
auto m = RAND(3, 9);
auto matrix = new int* [n];
for (auto i = 0; i < n; ++i) {
matrix[i] = new int[m];
for (auto j = 0; j < m; ++j) {
matrix[i][j] = RAND(-50, 51);
cout << setw(4) << matrix[i][j] << ' ';
}
puts("\n");
}
puts("");
for (auto i = 0; i < n; ++i) {
for (auto j = 0; j < m; ++j) {
matrix[i][j] = matrix[i][j] < 0? 0 : 1;
cout << setw(4) << matrix[i][j] << ' ';
}
puts("\n");
}
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int k, l;
void print(int **a)
{
int i, j;
for (i = 0; i < k; i++)
{
for (j = 0; j < l; j++) cout << setw(4) << a[i][j];
cout << endl;
}
}
int main()
{
int i, j;
srand(time(NULL));
for (;;)
{
k = 3 + rand() % 6;
l = 3 + rand() % 6;
int **Array = new int *[k];
for (i = 0; i < k; i++) Array[i] = new int[l];
cout << "Original Matrix:" << endl;
for (i = 0; i < k; i++) for (j = 0; j < l; j++)
Array[i][j] = rand() % 101 - 50;
print(Array);
for (i = 0; i < k; i++) for (j = 0; j < l; j++)
if (Array[i][j] < 0) Array[i][j] = 0; else Array[i][j] = 1;
cout << "Transformed Matrix:" << endl;
print(Array);
system("pause > nul");
system("cls");
}
}
На скрине показан случай, когда случайно получилось максимальное количество строк и столбцов:

#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int k, l;
void print(int **a)
{
int i, j;
for (i = 0; i < k; i++)
{
for (j = 0; j < l; j++) cout << setw(4) << a[i][j];
cout << endl;
}
}
int main()
{
int i, j;
srand(time(NULL));
for (;;)
{
k = 3 + rand() % 6;
l = 3 + rand() % 6;
int **Array = new int *[k];
for (i = 0; i < k; i++) Array[i] = new int[l];
cout << "Original Matrix:" << endl;
for (i = 0; i < k; i++) for (j = 0; j < l; j++)
Array[i][j] = rand() % 101 - 50;
print(Array);
for (i = 0; i < k; i++) for (j = 0; j < l; j++)
if (Array[i][j] < 0) Array[i][j] = 0; else Array[i][j] = 1;
cout << "Transformed Matrix:" << endl;
print(Array);
system("pause > nul");
system("cls");
}
}
На скрине показан случай, когда случайно получилось максимальное количество строк и столбцов:

Похожие вопросы
- Помогите решить задачу по C++!
- Помогите решить задачу на C++
- Помогите решить задачу на C++.
- Помогите решить задачу на c++
- Помогите решить задачу на C++
- Помогите решить задачу на C++
- УМОЛЯЮ!!!!! Помогите решить задачу на C++
- Помогите решить задачу на C++
- Помогите решить задачу в C++
- Помогите решить задачу по программированию на C++