Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 50
- int fun(int A[][N], int n) { //вывода матрицы на экран
- int i,j;
- for (i=0; i<n; i++) {
- for (j=0;j<n;j++)
- printf("%4d", A[i][j]);
- printf("\n");
- }
- printf("\n");
- return 0;
- }
- void fun1(int A[][N],int n) {//заполняет массив случайными числами
- int i,j;
- for (i=0;i<n;i++)
- for (j=0;j<n;j++)
- A[i][j]=rand()%10;
- }
- int* fun2(int A[][N],int n)//создает массив сумм элементов столбцов
- int i, j, s=0;
- int *B=(int*)malloc(n*sizeof(int));
- for (j=0;j<n;j++) {
- for (i=0;i<n;i++)
- s=s+A[i][j];
- B[j]=s;
- s=0;
- }
- return B;
- }
- int fun3(int B[],int n) { //считает кол-во эл массива B>12
- int i, k=0;
- for (i=0;i<n;i++)
- if (B[i]>12) k++;
- return k;
- }
- void fun4(int B[],int A[][N],int n) { //столбцы сумма которых больше 12 уменьшает на элемент главной диагонали соответствующего столбцы
- int i,j,t;
- for (j=0;j<n;j++) {
- if (B[j]>12) {
- t=A[j][j];
- for (i=0;i<n;i++) A[i][j]=A[i][j]-t;
- }
- }
- }
- void fun5(int A[][N], int n) { //побочную диагональ упорядочить по убыванию(сортировка выбором
- int i,j,t,max;
- for(i=0;i<n;i++) {
- max=i;
- for (j=i+1;j<n;j++)
- if (A[j][n-j-1]>A[max][n-max-1]) max=j;
- t=A[i][n-i-1];
- A[i][n-i-1]=A[max][n-max-1];
- A[max][n-max-1]=t;
- }
- }
- int main() {
- int k, n, i;
- int a[N][N];
- printf("vvedite razmer matricy nxn: \n");
- scanf("%d", &n);
- fun1(a,n);//создание массива
- printf("vash massiv: \n");
- fun(a,n);
- int* b=fun2(a,n);//формирование массива сумм
- printf("massiv sum b: \n");
- for (i=0; i<n; i++)
- printf("%4d", b[i]);
- printf ("\n\n");
- fun4(b,a,n);//создание нового массива
- printf("vash new massiv: \n");
- fun(a,n);
- k=fun3(b,n);//подсчет кол-во столбцов
- printf(" k = %d\n\n", k);
- fun5(a,n);//упорядочить по убывание
- printf("vash otsortirovaniy po ybivaniy massiv: \n");
- fun(a,n);
- return 0;
- }
Add Comment
Please, Sign In to add comment