Advertisement
GiaGio

Untitled

Nov 27th, 2019
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int **allo(int r, int c){
  4.   int i;
  5.   int **a = (int **)malloc(r*sizeof(int *));
  6.   for (i=0; i<r ; i++){
  7.     *(a+i)=(int *)malloc(c*sizeof(int));
  8.   }
  9.   return a;
  10. }
  11. void associa(int r, int c, int **m){
  12.   int x,y;
  13.   int v;
  14.   if (c == 1){
  15.     printf("inserire valori vettore :\n");
  16.   }
  17.   else{
  18.     printf("inserire valori matrice:\n");
  19.   }
  20.   for (x=0; x<r; x++){
  21.     for (y=0; y<c; y++){
  22.       if (c==1){
  23.         printf("posizione %d: \n\t" , x);
  24.       }
  25.       else{
  26.         printf("cord. [%d , %d]: \n\t" , x, y);
  27.       }
  28.       scanf("%d", &v);
  29.       m[x][y] = v;
  30.       printf("\n");
  31.     }
  32.   }
  33. }
  34.  
  35. void stampa(int r, int c, int **m){
  36.   int x,y;
  37.   for (x=0; x<r; x++){
  38.     for (y=0; y<c; y++){
  39.       printf("%d\t", m[x][y]);
  40.     }
  41.   printf("\n");
  42.   }
  43. }
  44. void stampaa(int r, int c, int **m, int **v, int **re){
  45.   int x,y;
  46.   int medio = r/2;
  47.   for (x=0; x<r; x++){
  48.     printf("|");
  49.     for (y=0; y<c; y++){
  50.       printf(" %d", m[x][y]);
  51.     }
  52.     if (x == medio){
  53.       printf(" | + | %d |  =  | %d |",v[x][0], re[x][0]);
  54.     }
  55.     else{
  56.       printf(" |   | %d |     | %d |",v[x][0], re[x][0]);
  57.     }
  58.     printf("\n");
  59.   }
  60. }
  61. void somma(int r, int c, int **m, int **v, int **re){
  62.   int x,y;
  63.   int sum;
  64.   for (x= 0; x<r; x++){
  65.     sum= 0;
  66.     for (y= 0; y<c; y++){
  67.       sum+= m[x][y] * v[x][0];
  68.     }
  69.     re[x][0]= sum;
  70.   }
  71. }
  72.  
  73. int main(){
  74.   int r, c, l;
  75.   int **m;
  76.   printf("inserire numero di righe: \n");
  77.   scanf("%d", &r);
  78.   printf("inserire numero di colonne: \n");
  79.   scanf("%d", &c);
  80.   m=allo(r,c);
  81.   associa(r,c,m);
  82.   stampa(r,c,m);
  83.   int **v= allo(r, 1);
  84.   int **result= allo(r, 1);
  85.   associa(r, 1, v);
  86.   somma(r,c,m,v,result);
  87.   stampaa(r,c,m,v,result);
  88.   return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement