Advertisement
Jordimario

Moltiplicazione Di Matrice X Matrice (BETA, NO COMMENTI)

Feb 27th, 2018
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 100
  4. ///Jordi Cabrera 3Aif
  5. ///Crea Matrice
  6.  
  7. int main()
  8. {
  9.     ///Dichiarazione Variabili
  10.     ///Elementi Prima Matrice
  11.     int mat[MAX][MAX];
  12.     int riga=0;
  13.     int colonna=0;
  14.     int r=1;
  15.     int c=1;
  16.     int n=0;
  17.  
  18.     ///Elementi Seconda Matrice
  19.     int mat2[MAX][MAX];
  20.     int x=1;
  21.     int y=1;
  22.     int colonnaf=0;
  23.     int rigaf=0;
  24.  
  25.     ///Elementi Matrice Risultante
  26.     int risultato[MAX][MAX];
  27.     int i=1;///righa
  28.     int j=1;///colonna
  29.     int colonnaSpan=0;
  30.     int rigaSpan=0;
  31.     ///Fine Dichiarazioni
  32.  
  33.  
  34.     ///Programma
  35.  
  36.  
  37.     ///Costruzione Prima Matrice
  38.     ///Ampiezza Matrice
  39.     printf("Larghezza Prima Matrice/vettore che Moltiplicante\n\nnumero righe\n");
  40.     while(riga<=0){
  41.     scanf("%d",&riga);
  42.     if(riga<=0){
  43.         printf("Il Numero deve essere Maggiore di 0\n");
  44.     }
  45.     }
  46.     printf("numero colonne\n");
  47.     while(colonna<=0){
  48.     scanf("%d",&colonna);
  49.     if(colonna<=0){
  50.         printf("Il Numero deve essere Maggiore di 0\n");
  51.     }
  52.     }
  53.     ///Valori dentro la Matrice
  54.          while(riga>=r){
  55.         printf("Riga %d Colonna %d\n",r,c);
  56.         scanf("%d",&mat[r][c]);
  57.  
  58.  
  59.        ///* RIPORTO *///
  60.         c++;
  61.         if(c>colonna)
  62.         {
  63.             c=1;
  64.             r++;
  65.         }
  66.         ///* FINE RIPORTO *///
  67.  
  68.     }
  69.     r=1;///ripota a 1 la riga
  70.  
  71.     ///Mostra Matrice
  72.     printf("i Dati della Matrice Sono\n");
  73.              while(riga>=r){
  74.  
  75.         printf("[%d]", mat[r][c]);
  76.  
  77.         ///* RIPORTO PRINTF *///
  78.         c++;
  79.         if(c>colonna)
  80.         {
  81.             printf("\n");
  82.             c=1;
  83.             r++;
  84.         }
  85.         ///* FINE RIPORTO PRINTF *///
  86.     }
  87. ///Fine costruzione Matrice
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.     ///Costruzione Seconda Matrice
  95.     ///Ampiezza Matrice
  96.     printf("Larghezza seconda Matrice/vettore che verra moltiplacata\n\nnumero righe\n");
  97.     while(rigaf<=0){
  98.     scanf("%d",&rigaf);
  99.     if(rigaf<=0){
  100.         printf("Il Numero deve essere Maggiore di 0\n");
  101.     }
  102.     }
  103.     printf("numero colonne\n");
  104.     while(colonnaf<=0){
  105.     scanf("%d",&colonnaf);
  106.     if(colonnaf<=0){
  107.         printf("Il Numero deve essere Maggiore di 0\n");
  108.     }
  109.     }
  110.     ///Valori dentro la Matrice
  111.          while(rigaf>=y){
  112.         printf("Riga %d Colonna %d\n",y,x);
  113.         scanf("%d",&mat2[y][x]);
  114.  
  115.  
  116.        ///* RIPORTO *///
  117.         x++;
  118.         if(x>colonnaf)
  119.         {
  120.             x=1;
  121.             y++;
  122.         }
  123.         ///* FINE RIPORTO *///
  124.  
  125.     }
  126.     y=1;///ripota a 1 la riga
  127.  
  128.     ///Mostra Matrice
  129.     printf("i Dati della seconda Matrice Sono\n");
  130.              while(rigaf>=y){
  131.  
  132.         printf("[%d]", mat2[y][x]);
  133.  
  134.         ///* RIPORTO PRINTF *///
  135.         x++;
  136.         if(x>colonnaf)
  137.         {
  138.             printf("\n");
  139.             x=1;
  140.             y++;
  141.         }
  142.         ///* FINE RIPORTO PRINTF *///
  143.     }
  144.     ///Fine costruzione
  145.     r=1;
  146.     y=1;
  147.     rigaSpan=riga;
  148.     colonnaSpan=colonnaf;
  149.     if(colonna!=rigaf)
  150.     {
  151.         printf("un se po' fa'");
  152.         return 0;
  153.     }
  154.   ///Valori dentro la Matrice
  155.          while(rigaSpan>=i){
  156.              risultato[i][j]=risultato[i][j]+mat[r][c]*mat2[y][x];
  157.              c++;
  158.              y++;
  159.              if(c>colonna)
  160.              {
  161.                  j++;
  162.                  x++;
  163.                  c=1;
  164.                  y=1;
  165.              }
  166.              if(j>colonnaSpan)
  167.              {
  168.                  x=1;
  169.                  i++;
  170.                  r++;
  171.                  j=1;
  172.  
  173.                  printf("aaa\n");
  174.              }
  175.  
  176.     }
  177.     i=1;///ripota a 1 la riga
  178.    j=1;
  179.     ///Mostra Matrice
  180.     printf("\ni Dati della seconda Matrice Sono\n");
  181.              while(rigaSpan>=i){
  182.  
  183.         printf("[%d]", risultato[i][j]);
  184.  
  185.         ///* RIPORTO PRINTF *///
  186.         j++;
  187.         if(j>colonnaSpan)
  188.         {
  189.             printf("\n");
  190.             j=1;
  191.             i++;
  192.         }
  193.         ///* FINE RIPORTO PRINTF *///
  194.     }
  195.     return 0;
  196.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement