Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define rows 5
  4. #define columns 4
  5.  
  6. void f1(int a[][columns], int x)
  7. {
  8.     int w,k;
  9.     for(w=0;w<x;w++)
  10.     {
  11.         for(k=0;k<columns;k++)
  12.         {
  13.             printf("%d\t",a[w][k]);
  14.         }
  15.         printf("\n");
  16.     }
  17.     printf("\n");
  18. }
  19.  
  20. void f2(int *apointer, int x)
  21. {
  22.     int w;
  23.     for(w=0;w<x*columns;w++)
  24.     {
  25.         printf("%d\t",*(apointer+w));
  26.     }
  27. }
  28.  
  29. void f3(int **pp, int x, int y)
  30. {
  31.     int w,k;
  32.     for(w=0;w<x;w++)
  33.     {
  34.         for(k=0;k<y;k++)
  35.         {
  36.             printf("%d\t",*(*(pp+w)+k));
  37.         }
  38.         printf("\n");
  39.     }
  40.     printf("\n");
  41. }
  42.  
  43. void wypisz_int (int *poczatek, int *koniec)
  44. {
  45.     while (poczatek < koniec)
  46.     printf ("%4d", *poczatek++);
  47.     return;
  48. }
  49.  
  50. void fill_int (int *poczatek, int *koniec)
  51. {
  52.     while (poczatek < koniec)
  53.     *poczatek++ = rand()%10;
  54.     return;
  55. }
  56.  
  57. int main(void)
  58. {
  59.     int i;
  60.  
  61.     //********array_1 *********//
  62.  
  63.     int **array_1;
  64.     array_1 = calloc (rows, sizeof(int*));
  65.     if (array_1 == NULL) exit(-1);
  66.     else {
  67.         for(i=0; i<rows; i++){
  68.                   array_1[i] = calloc (columns, sizeof(int));
  69.            if (array_1[i] == NULL) exit(-1);
  70.         }
  71.     }
  72.     for(i=0; i<rows; i++) {
  73.       fill_int (array_1[i],array_1[i]+columns);
  74.       //printf("\n");
  75.     }
  76.     //wypisywanie
  77.     printf("\n array_1\n");
  78.     for(i=0; i<rows; i++) {
  79.       wypisz_int (array_1[i],array_1[i]+columns);
  80.       printf("\n");
  81.     }
  82.     f3(array_1,rows,columns);
  83.  
  84.  
  85.     for(i=0; i < rows; i++)
  86.       free(array_1[i]);
  87.     free(array_1);
  88.  
  89.  
  90.     //********array_2 *********//
  91.  
  92.     int **array_2;
  93.     array_2 = calloc (rows, sizeof(int*));
  94.     if (array_2 == NULL) exit(-1);
  95.     else {
  96.       array_2[0] = calloc (rows*columns, sizeof(int));
  97.            if (array_2[0] == NULL) exit(-1);
  98.  
  99.       for(i=1; i < rows; i++)
  100.          array_2[i] = array_2[0] + i*columns;
  101.     }
  102.  
  103.     for(i=0; i<rows; i++) {
  104.       fill_int (array_2[i],array_2[i]+columns);
  105.      // printf("\n");
  106.     }
  107.     //wypisywanie
  108.     printf("\n array_2\n");
  109.     for(i=0; i<rows; i++) {
  110.       wypisz_int (array_2[i],array_2[i]+columns);
  111.       printf("\n");
  112.     }
  113.     f2(array_2[0],rows);
  114.     f3(array_2,rows,columns);
  115.     free(array_2[0]);
  116.     free(array_2);
  117.  
  118.     //********array_3 *********//
  119.  
  120.     int (*array_3)[columns];
  121.     array_3 = calloc (rows*columns, sizeof(int));
  122.     if (array_3 == NULL) exit(-1);
  123.  
  124.     for(i=0; i<rows; i++) {
  125.       fill_int (array_3[i],array_3[i]+columns);
  126.      // printf("\n");
  127.     }
  128.     //wypisywanie
  129.     printf("\n array_3\n");
  130.     for(i=0; i<rows; i++) {
  131.       wypisz_int (array_3[i],array_3[i]+columns);
  132.       printf("\n");
  133.     }
  134.     f2(array_3[0],rows);
  135.     f1(array_3,rows);
  136.     free(array_3);
  137.  
  138.     //********array_4 *********//
  139.  
  140.     int *array_4;
  141.     array_4 = calloc (rows*columns, sizeof(int));
  142.     if (array_4 == NULL) exit(-1);
  143.  
  144.     for(i=0; i<rows; i++) {
  145.       fill_int (array_4 + i*columns,array_4 + (i+1)*columns);
  146.     //  printf("\n");
  147.     }
  148.     //wypisywanie
  149.     printf("\n array_4\n");
  150.     for(i=0; i<rows; i++) {
  151.       wypisz_int (array_4 + i*columns,array_4 + (i+1)*columns);
  152.       printf("\n");
  153.     }
  154.     f1(array_4,rows);
  155.     free(array_4);
  156.  
  157.  
  158.  
  159.    printf("\n array_5\n");
  160.    //********array_5 *********//
  161.  
  162.     int array_5[rows][columns] = {{0}};
  163.     for(i=0; i<rows; i++) {
  164.       fill_int (array_5[i],array_5[i]+columns);
  165.       //printf("\n");
  166.     }
  167.     for(i=0; i<rows; i++) {
  168.       wypisz_int (array_5[i],array_5[i]+columns);
  169.       printf("\n");
  170.     }
  171.     f2(array_5[0],rows);
  172.     f1(array_5,rows);
  173.  
  174.     return 0;
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement