Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <locale.h>
- #include <conio.h>
- #include <math.h>
- #include <windows.h>
- int absolute(int a)
- {
- if (a<0) a=a*(-1);
- else a=a;
- return a;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int i1, j1; //Переменные, суть которых запомнить позицию удаленного элемента
- int n; //Размер матрицы
- int i,j,k,l,g; //Переменные для циклов
- int *m1, *m2; // m1 - исходный массив m2 - преобразованный массив.
- printf("Введите размер квадратной матрицы:");
- if (!scanf("%d",&n))
- {
- return 0;
- }
- if(!(m1=(int*)malloc(n*n*sizeof(int))))
- {
- puts("Нет памяти для заполнения!");
- return 0;
- }
- if(!(m2=(int*)malloc((n-1)*(n-1)*sizeof(int))))
- {
- puts("Нет памяти для заполнения!");
- free(m1);
- return 0;
- }
- for (i=0;i<n;i++)
- for(j=0;j<n;j++)
- do
- {
- system("CLS");
- printf("Введите значение MT[%d][%d]",i,j);
- fflush(stdin);
- k=scanf("%d", (m1+i*n+j));
- }
- while(k==0);
- system("CLS");
- //VsqrMT(n, *m1);
- g=1; //переменной передана единица, для того, чтобы сделать цикл рабочим
- for(i=0;i<n;i++)
- for(j=0;j<n;j++)
- {
- if(absolute(*(m1+i*n+j))>absolute(g) || g==1) //g - элемент сравнения
- {
- g=*(m1+i*n+j);
- i1=i;
- j1=j;
- }
- }
- k=0;
- for (i=0;i<n;i++)
- { //k и l переменные для счета внутри m2
- l=0;
- for (j=0; j<n; j++)
- {
- if(i!=i1 && j!=j1)
- {
- *(m2+k*(n-1)+l)=*(m1+i*n+j);
- l++;
- }
- else if ((i==i1 && j==j1) || (i<i1 && j==j1) || (i>i1 && j==j1)) // переменные для второй матрицы в этом случае не поменяются
- {
- k=k; l=l++;
- }
- else if (j=j1)
- {
- k=k; l=l++;
- }
- else if (i==i1) break;
- }
- if(i!=i1)
- k++;
- }
- printf("Исходный массив:\n\n");
- for(i=0;i<n;i++)
- {
- for(j=0; j<n; j++)
- printf("%4d", *(m1+i*n+j));
- printf("\n");
- }
- printf("\n\n");
- printf("Преобразованный массив:\n\n");
- for(i=0;i<(n-1);i++)
- {
- for(j=0; j<(n-1); j++)
- printf("%4d", *(m2+i*(n-1)+j));
- printf("\n");
- }
- printf("\n\n");
- printf("Число-перекресток:\t%d", *(m1+i1*n+j1));
- printf("\n\n");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement