Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cmath>
  4. #include <stdio.h>
  5. //#define AR_SZ=SZ*2-2
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9.  
  10. {
  11.  bool pos;
  12.     int przvd;
  13.     int SZ=0;
  14.     int max_sum=0;
  15.     int i, j, k, index_i = 1, index_j = SZ - 1;
  16.    
  17.     FILE *f_in, *f_out;
  18.     f_in=fopen("in.txt","r");
  19.     f_out=fopen("out.txt","w");
  20.    
  21. //Чтитаем размер матрицы из файла   
  22.     fscanf(f_in, "%i", &SZ);
  23.    
  24.     int size = SZ;
  25. //Создаем динамическую матрицу
  26.     double **matr = new double*[SZ];
  27.     for(i = 0; i < SZ; i++) matr[i] = new double [SZ];
  28.  
  29. //Читаем матрицу из файла    
  30.     for (i=0; i<SZ; i++)
  31.    
  32.         for (j=0; j<SZ; j++)
  33.         fscanf (f_in, "%lf", &matr[i][j]);
  34.        
  35.     int AR_SZ=SZ*2-2;
  36.    
  37.  
  38.     int sum[AR_SZ];
  39. //      for (i=0; i<AR_SZ; i++) sum[AR_SZ]=0;
  40.    
  41.     cout << SZ << endl << AR_SZ << endl;
  42.  /*    
  43.     int matr[SZ][SZ] = {
  44.         {2,  3,  20, 5},
  45.         {3,  8,  3, -8},
  46.         {-20, 20, 4, 3},
  47.         {33, 5, 3, 6}
  48.      };
  49. */
  50.    
  51.    
  52.     cout << "Матрица:\n";
  53.     for(i = 0; i < SZ; i++)
  54.     {
  55.         for(j = 0; j < SZ; j++)
  56.             cout << "\t" << matr[i][j];
  57.         cout << endl;
  58.     }
  59. // 1) произведение элементов в тех строках, которые не содержат отрицательных элементов;
  60.     for(i = 0; i < SZ; i++)
  61.         {
  62.         pos=1;
  63.         for (j=0; j<SZ; j++)    if (matr[i][j]<0) {pos=0; break;}
  64.        
  65.         przvd = 1;
  66.          if (pos)
  67.         {
  68.             for(j = 0; j < SZ; j++)
  69.                 przvd = przvd*matr[i][j];
  70.             cout << "\nПроизведение строки" << i + 1 << ": " << przvd << endl;
  71.         }  
  72.     }
  73. // 2) максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
  74.     for(k = 0; k < AR_SZ; k++)
  75.     cout << k << "  " << sum[k] << endl;
  76.         {
  77.         if (k<SZ-1) i=0;
  78.             else i=index_i++;
  79.         if (k<SZ-1) j=index_j--;
  80.             else j=0;
  81.         if(k >= SZ - 1)     size--;
  82.  
  83.         while(j < size)
  84.             sum[k] = sum[k]+matr[i++][j++];
  85.         if(sum[k] > max_sum)
  86.             max_sum = sum[k];
  87.     }
  88.     cout << "\n\nМаксимальная сумма   : " << max_sum << endl << endl;
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement