Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cmath>
- #include <stdio.h>
- //#define AR_SZ=SZ*2-2
- using namespace std;
- int main(int argc, char *argv[])
- {
- bool pos;
- int przvd;
- int SZ=0;
- int max_sum=0;
- int i, j, k, index_i = 1, index_j = SZ - 1;
- FILE *f_in, *f_out;
- f_in=fopen("in.txt","r");
- f_out=fopen("out.txt","w");
- //Чтитаем размер матрицы из файла
- fscanf(f_in, "%i", &SZ);
- int size = SZ;
- //Создаем динамическую матрицу
- double **matr = new double*[SZ];
- for(i = 0; i < SZ; i++) matr[i] = new double [SZ];
- //Читаем матрицу из файла
- for (i=0; i<SZ; i++)
- for (j=0; j<SZ; j++)
- fscanf (f_in, "%lf", &matr[i][j]);
- int AR_SZ=SZ*2-2;
- int sum[AR_SZ];
- // for (i=0; i<AR_SZ; i++) sum[AR_SZ]=0;
- cout << SZ << endl << AR_SZ << endl;
- /*
- int matr[SZ][SZ] = {
- {2, 3, 20, 5},
- {3, 8, 3, -8},
- {-20, 20, 4, 3},
- {33, 5, 3, 6}
- };
- */
- cout << "Матрица:\n";
- for(i = 0; i < SZ; i++)
- {
- for(j = 0; j < SZ; j++)
- cout << "\t" << matr[i][j];
- cout << endl;
- }
- // 1) произведение элементов в тех строках, которые не содержат отрицательных элементов;
- for(i = 0; i < SZ; i++)
- {
- pos=1;
- for (j=0; j<SZ; j++) if (matr[i][j]<0) {pos=0; break;}
- przvd = 1;
- if (pos)
- {
- for(j = 0; j < SZ; j++)
- przvd = przvd*matr[i][j];
- cout << "\nПроизведение строки" << i + 1 << ": " << przvd << endl;
- }
- }
- // 2) максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
- for(k = 0; k < AR_SZ; k++)
- cout << k << " " << sum[k] << endl;
- {
- if (k<SZ-1) i=0;
- else i=index_i++;
- if (k<SZ-1) j=index_j--;
- else j=0;
- if(k >= SZ - 1) size--;
- while(j < size)
- sum[k] = sum[k]+matr[i++][j++];
- if(sum[k] > max_sum)
- max_sum = sum[k];
- }
- cout << "\n\nМаксимальная сумма : " << max_sum << endl << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement