Advertisement
frentzy

Cub 3d (matrice 3d) cu un singur pointer

Nov 28th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. // pointer program.  creeaza o matrice cu un singur for
  5.  
  6. void CitireAfisare(int *p, int n, int m, int sect) {
  7.     int *init;
  8.     init = p;
  9.     int lungime = n*m;
  10.     int k;
  11.     // am un vector -> matrice k -> (i,j) k/coloana, k%coloana
  12.     for (k = 0; k < sect; k++)
  13.         for (int i = 0; i < lungime; i++) {
  14.  
  15.             printf("matrice[%d][%d][%d]= ", k, i / m, i%m);
  16.             scanf_s("%d", p);
  17.             p++;
  18.         }
  19.     int i;
  20.     p = init; // 1 2 3 4 5 6 7 8 9
  21.     printf("\nAfisare matrice 3D:\n");
  22.     for (k = 0; k < sect; k++) {
  23.         for (i = 0; i < lungime; i++) {
  24.             if (i%m == 0) {
  25.                 printf("\n");
  26.                 for (int x = 0; x < k; x++)
  27.                     printf(" ");
  28.             }
  29.             printf("%d ", *p);
  30.             p++;
  31.         }
  32.        
  33.     }
  34.  
  35. }
  36.  
  37. int * Alocare(int n, int m, int sect) {
  38.  
  39.     int *p;
  40.     int lungime = n*m*sect;
  41.     if ((p = (int *)malloc(sizeof(int)*lungime)) == NULL) { // ( (p=)==NULL)
  42.         printf("nu s-a gasit in memorie");
  43.         _getch();
  44.         exit(0);
  45.     }
  46.     return p;
  47. }
  48.  
  49. void main() {
  50.     int *p;
  51.     int n, m, sect, lungime;
  52.  
  53.     printf("Introduceti nr de sectiuni: ");
  54.     scanf_s("%d", &sect);
  55.     printf("Introduceti nr de linii ale matricei: ");
  56.     scanf_s("%d", &n);
  57.     printf("Introduceti nr de coloane ale matricei:");
  58.     scanf_s("%d", &m);
  59.     lungime = n*m;
  60.  
  61.     p = Alocare(n, m, sect);
  62.     CitireAfisare(p, n, m, sect);
  63.  
  64.  
  65.  
  66.     _getch();
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement