Advertisement
candrei98

Citire/Afisare matrice cu un pointer + pus diag in pointer

Dec 13th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #pragma warning (disable:4996)
  5.  
  6.  
  7. void citireafisare(int n, int m, int*p);
  8. void diagvector(int *p, int dim);
  9.  
  10. int* alocare(int dim) {
  11.  
  12.     int *p;
  13.  
  14.     if ((p = (int*)malloc(sizeof(int) * dim)) == NULL) {
  15.         printf("Nu e saptiu suficient");
  16.         exit(0);
  17.     }
  18.  
  19.     return p;
  20. }
  21.  
  22. void citireafisare(int n, int m, int*p) {
  23.  
  24.     int *p_init = p;
  25.     int dim = n * m;
  26.  
  27.     for (int i = 0; i < n*m; i++) {
  28.         printf("Elementul p[%d][%d] al lui p =", i / m, i%m);
  29.         scanf("%d", p);
  30.         p++;
  31.     }
  32.  
  33.     p = p_init;
  34.  
  35.     for (int i = 0; i < n*m; i++) {
  36.         if (i%m == 0) {
  37.             printf("\n");
  38.         }
  39.         printf("%d ", *p);
  40.         p++;
  41.     }
  42.  
  43.     p = p_init;
  44.  
  45.     printf("\n");
  46.  
  47.     for (int i = 0; i < n*m; i++) {
  48.         if (i/m==i%m) {
  49.             printf("%d", *(p+i));
  50.         }
  51.     }
  52.  
  53. }
  54.  
  55. void diagvector(int *p, int dim) {
  56.  
  57.     int *a;
  58.  
  59.     a = alocare(dim);
  60.  
  61.     a = p;
  62.  
  63.     printf("%d ", *a);
  64. }
  65.  
  66. void main() {
  67.  
  68.     int *p, i, j, n, m, dim;
  69.  
  70.     do {
  71.         printf("Introduceti numarul de linii: ");
  72.         scanf("%d", &n);
  73.     } while (n > 10);
  74.     do {
  75.         printf("Introduceti numarul de coloane: ");
  76.         scanf("%d", &m);
  77.     } while (m > 10);
  78.  
  79.     dim = n * m;
  80.  
  81.     p = alocare(dim);
  82.  
  83.     citireafisare(n, m, p);
  84.  
  85.     _getch();
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement