C Programul de spirală Cautati

Cum se scrie un program C pentru a parcurge spirală în limbajul de programare C ?


Solution:

  1. #include <stdio.h>
  2.  
  3. void spirala(int a[][100], int m, int n, int v[])
  4. {
  5.         int i = 0, j = 0, c = 0, k = 0, i1, j1;
  6.         while(< m * n)
  7.         {
  8.                 for(i1 = i; i1 < n - i; i1++)
  9.                 {
  10.                         v[k] = a[i1][j];
  11.                         k++;
  12.                 }
  13.                 for(j1 = j + 1; j1 < m - j; j1++)
  14.                 {
  15.                         v[k] = a[- i - 1][j1];
  16.                         k++;
  17.                 }
  18.                 for(i1 = n - i - 2; i1 >= i; i1--)
  19.                 {
  20.                         v[k] = a[i1][- j - 1];
  21.                         k++;
  22.                 }
  23.                 for(j1 = m - j - 2; j1 >= j+1; j1--)
  24.                 {
  25.                         v[k] = a[i][j1];
  26.                         k++;
  27.                 }
  28.                 i++;
  29.                 j++;
  30.         }
  31. }
  32.  
  33. void afisare(int v[], int dim)
  34. {
  35.         int i;
  36.         for(i=0;i<dim;i++)
  37.         {
  38.                 printf("%d ", v[i]);
  39.         }
  40.         printf("\n");
  41. }
  42.  
  43. int main()
  44. {
  45.         int n, m, a[100][100], v[10000], i, j, dim;
  46.         scanf("%d %d", &n, &m);
  47.         for(i=0;i<n;i++)
  48.         {
  49.                 for(j=0;j<m;j++)
  50.                 {
  51.                         scanf("%d", &a[i][j]);
  52.                 }
  53.         }
  54.         spirala(a, m, n, v);
  55.         dim = n*m;
  56.         afisare(v, dim);
  57.         return 0;
  58. }


Learn More :