C/C++

Решите пожалуйста !!! Дана действительная матрица размером n x m.

Получить новую матрицу путём умножения всех элементов данной матрицы на наименьший элемент первой строки.
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

int main() {
double matrix[50][50];
cout << "Enter a number of rows: ";
int row;
cin >> row;
cout << "Enter a number of columns ";
int column;
cin >> column;

cout << "\nThe current matrix:\n";

srand(time(NULL));
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
cout << setw(6) << (matrix[i][j] = (rand() % 400 + 10) / 10.0);
}
cout << "\n";
}

int ind = 0;
double min;
for (int j = 0; j < column; ++j)
if (matrix[0][j] < matrix[0][ind]) ind = j;
min = matrix[0][ind];

cout << "\nThe current matrix:\n";
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
cout << setw(6) << (matrix[i][j] *= min);
}
cout << "\n";
}

return 0;
}
Дима Демидов
Дима Демидов
6 243
Лучший ответ
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main()
{
int N,M;
float min=10.00;
printf("Enter count of rows = ");scanf("%d",&M);
printf("\nEnter count of colums = ");scanf("%d",&N);
float **A = (float**)malloc(N * sizeof(float*));
for (int i = 0; i < M; i++)
A[i] = (float*)malloc(M * sizeof(float));
srand(time(NULL));
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
A[j][i]=rand()%10+(0.1*(rand()%10));
printf("\nStart Matrix A is:\n");
for(int j=0;j<M;j++)
{
for(int i=0;i<N;i++)
{
printf("A[%d][%d]=%.1f ",j,i,A[j][i]);
if(j==0&&A[j][i]<min) min=A[j][i];
}
printf("\n");
}
printf("\n\nMinimal digit in 1-st row = %.2f\n",min);
printf("\nResult Matrix A is:\n");
for(int j=0;j<M;j++)
{
for(int i=0;i<N;i++)
{
A[j][i]*=min;
printf("A[%d][%d]=%.1f ",j,i,A[j][i]);
}
printf("\n");
}
for (int i = 0; i < M; i++)
free(A[i]);
free(A);
printf("\n\n");
sleep(10);
return 0;
}
Nurik Kulimbetov
Nurik Kulimbetov
37 945
Игорь Кабаков Пробовал, работает ;)
Пробовал, работает ;)