gashink_t

столбцы сумма которых больше 12 уменьшает на элемент главно

Feb 12th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 50
  4.  
  5. int fun(int A[][N], int n) { //вывода матрицы на экран
  6.     int i,j;
  7.     for (i=0; i<n; i++) {
  8.         for (j=0;j<n;j++)
  9.             printf("%4d", A[i][j]);
  10.         printf("\n");
  11.     }
  12.     printf("\n");
  13.     return 0;
  14. }
  15.  
  16. void  fun1(int A[][N],int n) {//заполняет массив случайными числами
  17.     int i,j;
  18.     for (i=0;i<n;i++)
  19.         for (j=0;j<n;j++)
  20.             A[i][j]=rand()%10;
  21. }
  22.  
  23.  
  24. int*  fun2(int A[][N],int n)//создает массив сумм элементов столбцов
  25.     int i, j, s=0;
  26.     int *B=(int*)malloc(n*sizeof(int));
  27.     for (j=0;j<n;j++) {
  28.         for (i=0;i<n;i++)
  29.             s=s+A[i][j];
  30.         B[j]=s;
  31.         s=0;
  32.     }
  33.     return B;
  34. }
  35.  
  36.  
  37. int fun3(int B[],int n) { //считает кол-во эл массива B>12
  38.     int i, k=0;
  39.     for (i=0;i<n;i++)
  40.         if (B[i]>12) k++;
  41.     return k;
  42. }
  43.  
  44.  
  45. void fun4(int B[],int A[][N],int n) { //столбцы сумма которых больше 12  уменьшает на элемент главной диагонали соответствующего столбцы
  46.     int i,j,t;
  47.     for (j=0;j<n;j++) {
  48.         if (B[j]>12) {
  49.             t=A[j][j];
  50.             for (i=0;i<n;i++) A[i][j]=A[i][j]-t;
  51.         }
  52.     }
  53. }
  54.  
  55. void fun5(int A[][N], int n) { //побочную диагональ упорядочить по убыванию(сортировка выбором
  56.     int i,j,t,max;
  57.     for(i=0;i<n;i++) {
  58.         max=i;
  59.         for (j=i+1;j<n;j++)
  60.            if (A[j][n-j-1]>A[max][n-max-1]) max=j;
  61.         t=A[i][n-i-1];
  62.         A[i][n-i-1]=A[max][n-max-1];
  63.         A[max][n-max-1]=t;
  64.     }
  65. }
  66.  
  67. int main() {
  68.     int k, n, i;
  69.     int a[N][N];
  70.     printf("vvedite razmer matricy nxn: \n");
  71.     scanf("%d", &n);
  72.     fun1(a,n);//создание массива
  73.     printf("vash massiv: \n");
  74.     fun(a,n);
  75.     int* b=fun2(a,n);//формирование массива сумм
  76.     printf("massiv sum b: \n");
  77.     for (i=0; i<n; i++)
  78.         printf("%4d", b[i]);
  79.     printf ("\n\n");
  80.     fun4(b,a,n);//создание нового массива
  81.     printf("vash new massiv: \n");
  82.     fun(a,n);
  83.     k=fun3(b,n);//подсчет кол-во столбцов
  84.     printf("               k = %d\n\n", k);
  85.     fun5(a,n);//упорядочить по убывание
  86.     printf("vash otsortirovaniy po ybivaniy massiv: \n");
  87.     fun(a,n);
  88.     return 0;
  89. }
Add Comment
Please, Sign In to add comment