Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include "stdio.h"
- #include <time.h>
- #define M 5
- #define N 5
- void init_dinamic_matrix(int* A[], int n, int m);
- void print_dinamic_matrix(int*A[], int n, int m);
- void the_power_of_spiral(int* A[], int n, int m);
- int main() {
- int** A;
- A = (int**)malloc(N * sizeof(int*));
- for (int i = 0; i < N; i++) {
- A[i] = (int*)malloc(M * sizeof(int));
- }
- init_dinamic_matrix(A, N, M);
- print_dinamic_matrix(A, N, M);
- int colvo = M * N;
- printf("\n\n");
- the_power_of_spiral(A, N, M);
- for (int i = 0; i < N; i++)
- free(A[i]);
- free(A);
- getchar();
- return 0;
- }
- void init_dinamic_matrix(int* A[], int n, int m) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- A[i][j] = rand() % 100;
- }
- }
- }
- void print_dinamic_matrix(int*A[], int n, int m) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- printf("%3d", A[i][j]);
- }
- printf("\n");
- }
- }
- void the_power_of_spiral(int* a[], int n, int m) {
- int i,j;
- int upper = 0;
- int bottom = n - 1;
- int left = 0;
- int right = m - 1;
- int qu = n*m;
- while (qu > 0) {
- for (j = left; j < right; j++) {
- printf("%d ", a[upper][j]);
- qu--;
- if (qu == 0) { break; }
- }
- for (i = upper; i < bottom; i++) {
- printf("%d ", a[i][right]);
- qu--;
- if (qu == 0) { break; }
- }
- for (j = right; j > left; j--) {
- printf("%d ", a[bottom][j]);
- qu--;
- if (qu == 0) { break; }
- }
- for (i = bottom; i > upper; i--) {
- printf("%d ", a[i][left]);
- qu--;
- if (qu == 0) { break; }
- }
- left++;
- right--;
- upper++;
- bottom--;
- if (qu == 1) {
- printf("%3d", a[left][upper]);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement