Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define SIZE 24
- void swape(int *a, int *b);
- void solve (int n, int m, int a[SIZE][SIZE])
- {
- int p1 = -1, p2 = -1;
- int flag = 0;
- int cnt = 0;
- for (int * i = *a;
- i < *(a + n);
- i += SIZE)
- {
- if (flag)
- break;
- for (int * j = i;
- j < i + m;
- j++)
- {
- if ((i - *a)/SIZE == (j - i))
- break;
- if (*j >
- 0)
- cnt++;
- if(cnt == 1)
- {
- p1 = (i - *a)/SIZE;
- }
- else if (cnt == 4
- )
- {
- p2 = (i - *a)/SIZE;
- flag = 1;
- break;
- }
- }
- }
- if ((p1 >
- = 0) && (p2 >
- = 0) && (p1 != p2))
- for(int * i = *(a + p1), * j = *(a + p2);
- (i < *(a + p1)+m && j < *(a +
- p2)+m);
- i++, j++)
- swape(i, j);
- }
- void swape(int *a, int *b)
- {
- *a ^= *b;
- *b ^= *a;
- *a ^= *b;
- }
- int main()
- {
- int n, m;
- printf("Enter the matrix size:\n");
- scanf("%d%d", &n, &m);
- int a[SIZE][SIZE];
- printf("Enter the elements of matrix %ix%i:\n", n, m);
- for(int * i = *a;
- i < *(a + n);
- i+=SIZE)
- {
- for(int * j = i;
- j < i + m;
- j++)
- scanf("%d", j);
- }
- solve(n, m, a);
- printf("\nEdited matrix:\n");
- for (int * i = *a;
- i < *(a + n);
- i += SIZE)
- {
- for (int * j = i;
- j < i + m;
- j++)
- printf("%d ", *j);
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement