двовимірні масиви С++
20 грн на карту бонусом !!!Задана дійсна матриця Аij розмірності n*m. Написати програму, що обчислює нову
матрицю Bij . Матриця Bij отримується шляхом поділу всіх елементів заданої матриці
Aij на її найбільший по модулю елемент.
Ответы
Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <cmath>
using namespace std;
void randarr(float **A,int n,int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
A[i][j] = (-400+rand()%999)/100.f;
}
}
}
void printarr(float **A, int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cout << A[i][j] << "\t";
}
cout << endl;
}
}
float maxelement(float **A,int n, int m){
float max = A[0][0];
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(A[i][j] > max){
max = A[i][j];
}
}
}
return abs(max);
}
void expression(float **A,int n, int m){
float **B = new float *[n];
for(int i = 0; i < n; i++)
B[i]=new float[m];
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
B[i][j] = A[i][j] / maxelement(A,n,m);
}
}
printarr(B,n,m);
for(int i = 0; i < n; i++)
delete[]B[i];
delete[]B;
}
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Ukrainian");
int n,m;
cout << "Введiть n: ";
cin >> n;
cout << "Введiть m: ";
cin >> m;
float **A = new float *[n];
for(int i = 0; i < n; i++)
A[i]=new float[m];
randarr(A,n,m);
printarr(A,n,m);
cout << "\n" << maxelement(A,n,m);
expression(A,n,m);
for(int i = 0; i < n; i++)
delete[]A[i];
delete[]A;
return 0
}