diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2019-11-08 11:17:19 +0100 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2019-11-08 11:17:19 +0100 |
commit | 9614d577a3f3ca8f659074a56744ed33b7df67c6 (patch) | |
tree | eb0794069f8f95d43921fd87d94559303118cd36 /I_anno/Programmazione_1 | |
parent | 2f1c80f9b10a07fe727f0a6522dddd1e4c93e660 (diff) |
Ex 13
Scrivere un metodo che preveda due parametri formali matrici di interi, A e B di dimensioni k × n ed
n × k rispettivamente, e restituisca uno array monodimensionale di k elementi double in cui lo i-esimo elemento sia uguale alla
differenza tra la media aritmetica degli elementi della riga i-esima di A ed il minimo valore degli elementi della colonna i-esima
di B.
Diffstat (limited to 'I_anno/Programmazione_1')
-rw-r--r-- | I_anno/Programmazione_1/ex13.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex13.cc b/I_anno/Programmazione_1/ex13.cc new file mode 100644 index 0000000..e044504 --- /dev/null +++ b/I_anno/Programmazione_1/ex13.cc @@ -0,0 +1,44 @@ +#include <iostream> +#include <algorithm> +#include <vector> +#define K 2 +#define N 3 +using namespace std; + +double* func(int A[K][N], int B[N][K]) { + double* arr = new double[K]; + for(int i = 0; i < K; ++i) { + vector<int> t; + int sum = 0; + for(int j = 0; j < N; ++j) { + t.push_back(B[j][i]); + sum+=A[i][j]; + } + + double media = static_cast<double>(sum)/N; + auto min_num = min_element(begin(t), end(t)); + arr[i] = media - *min_num; + } + + return arr; +} + +int main() { + int A[K][N] = { + {3, 7, 10}, + {5, 12, 32}, + }; + int B[N][K] = { + {12, 10}, + {15, 17}, + {8, 0}, + }; + double* x = func(A, B); + + for(int i = 0; i < K; ++i) + cout << x[i] << ' '; + + cout << endl; + + return 0; +} |