Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- template<typename Type>
- int getZeros(Type **array, int N, int M){
- int i, k, zeros = M;
- for(k = 0; k < M; k++){
- for(i = 0; i < N; i++){
- if(array[i][k] == 0){
- zeros--;
- break;
- }
- }
- }
- return zeros;
- }
- template<typename Type>
- void characteristics(Type **array, int N, int M) {
- Type characteristics[N][2], sum;
- int i, k;
- for(i = 0; i < N; i++){
- sum = 0;
- for(k = 0; k < M; k += 2){
- if(array[i][k] > 0) sum += array[i][k];
- }
- characteristics[i][0] = i;
- characteristics[i][1] = sum;
- }
- for (i = 1; i < N; i++)
- for (k = 0; k < N - i; k++)
- if (characteristics[k][1] < characteristics[k + 1][1])
- swap(characteristics[k], characteristics[k + 1]);
- for(i = 0; i < N; i++) {
- for(k = 0; k < M; k++){
- cout << array[(int) characteristics[i][0]][k];
- if(k != M - 1) cout << " ";
- }
- cout << endl;
- }
- }
- template<typename Type>
- void process(Type **array, int N, int M)
- {
- int i, k;
- for (i = 0; i < N; i++)
- {
- array[i] = new Type[M];
- }
- for (i = 0; i < N; i++) {
- for (k = 0; k < M; k++) {
- cin >> array[i][k];
- }
- }
- cout << getZeros(array, N, M) << endl;
- characteristics(array, N, M);
- }
- int main() {
- int N, M, i, k;
- cin >> N;
- cin >> M;
- auto **array = new int* [M];
- auto **arrayDouble = new double* [M];
- auto **arrayFloat = new float* [M];
- process(array, N, M);
- process(arrayDouble, N, M);
- process(arrayFloat, N, M);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement