Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void print(int n, int **grid)
- {
- int i, j;
- for(i=0; i<n; i++)
- {
- for(j=0; j<n; j++)
- {
- printf("%3d ", grid[i][j]);
- }
- printf("\n");
- }
- }
- void fillin(int n, int ***grid){
- int val = 1, loop = 0, z, bound = n, i = 0, j = 0;
- *grid = malloc(n*sizeof(int*));
- for(i = 0; i < n; i++)
- {
- *(*grid+i)=malloc(n*sizeof(int));
- }
- for(z = 0; z < n/2; z++)
- {
- for(i = loop; i < bound-loop; i++)
- {
- (*grid)[i][j] = val;
- val++;
- }
- i--;
- val--;
- for(j = loop; j < bound-loop; j++)
- {
- (*grid)[i][j] = val;
- val++;
- }
- j--;
- val--;
- for(; i > 0+loop; i--)
- {
- (*grid)[i][j] = val;
- val++;
- }
- for(; j > 0+loop; j--)
- {
- (*grid)[i][j] = val;
- val++;
- }
- j++;
- loop++;
- }
- if(n % 2 != 0)
- {
- (*grid)[n/2][n/2] = n*n;
- }
- return grid;
- }
- int main()
- {
- int n, i, j, **grid;
- printf("Iveskite skaiciu N - ");
- scanf("%d", &n);
- fillin(n, &grid);
- print(n, grid);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement