Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    rpoblema operazioni su matrici (in C)

    ciao a tutti
    ho fatto questo programmino per somma e prodotto
    inserisco i numeri nelle matrici...ma il risultato della somma è sempre = a zero
    sapete dirmi dove sbaglio?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define N 100
    
    /*
     * 
     */
    int main() {
    
        int A[N][N] = {0};
        int B[N][N] = {0};
        int SOMMA[N][N] = {0};
        int PRODOTTO[N][N] = {0};
        int i, j, n, k;
        int prodotto, tot;
    
        printf ("Inserisci la dimensione della matrice : ");
        scanf ("%3d", &n);
    
        if (n < N){
            printf ("\nMatrice A\n");
            for (i = 0; i < n; i++){
                printf ("Inserisci riga %d\n", i);
                for (j = 0; j < n; j++){
                    printf ("Inserisci numero : ");
                    scanf ("%3d", &A[i][j]);
                }
            }
             printf ("\nMatrice B\n");
            for (i = 0; i < n; i++){
                printf ("Inserisci riga %d\n", i);
                for (j = 0; j < n; j++){
                    printf ("Inserisci numero intero : ");
                    scanf ("%3d", &B[i][j]);
                }
            }
    
            printf ("Somma matrici A + B = \n");
             for (i = 0; i < n; i++){
                for (j = 0; j < n; j++){
                    SOMMA[i][j] = A[i][j] + B [i][j];
    
                }
             }
            printf ("%3d", SOMMA[i][j]);
           
             pritnf ("Prodotto matrici A * B : \n");
    
                for (i = 0; i < n; i++){
                    for (j = 0; j < n; j++){
                        for (k = 0; k < n; k++){
                        prodotto = A[i][k] * B[k][i];
                        }
                       tot = tot + prodotto;
                       PRODOTTO[i][j] = tot;
                    }
              }
              printf ("%3d", PRODOTTO[i][j]);
             
        }
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Ciao . . . Dovresti spostare l' istruzione printf("%3d", SOMMA[i][j]) :
    codice:
    for(i=0; i<n; i++){
    for(j=0; j<n; j++){
    SOMMA[i][j]=A[i][j]+B[i][j];
    printf("%3d", SOMMA[i][j]);
    }
    printf("\n");
    }
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ok ora funziona anche per il prodotto , posto semmai serve a qualcuno
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define N 100
    
    /*
     * 
     */
    int main() {
    
        int A[N][N] = {0};
        int B[N][N] = {0};
        int SOMMA[N][N] = {0};
        int PRODOTTO[N][N] = {0};
        int i, j, n, k;
        int prodotto, tot;
    
        printf ("Inserisci la dimensione della matrice : ");
        scanf ("%3d", &n);
    
        if (n < N){
            printf ("\nMatrice A\n");
            for (i = 0; i < n; i++){
                printf ("Inserisci riga %d\n", i);
                for (j = 0; j < n; j++){
                    printf ("Inserisci numero intero: ");
                    scanf ("%3d", &A[i][j]);
                }
            }
            printf ("\nMatrice B\n");
            for (i = 0; i < n; i++){
                printf ("Inserisci riga %d\n", i);
                for (j = 0; j < n; j++){
                    printf ("Inserisci numero intero : ");
                    scanf ("%3d", &B[i][j]);
                }
            }
    
            printf ("\nMatrice A\n");
            for (i = 0; i < n; i++){
                for (j = 0; j < n; j++){
                    printf ("%3d", A[i][j]);
                    }
                    printf("\n");
                }
    
            printf ("\nMatrice B\n");
            for (i = 0; i < n; i++){
                for (j = 0; j < n; j++){
                    printf ("%3d", B[i][j]);
                    }
                    printf("\n");
                }
    
            printf ("\nSomma matrici A + B = \n");
             for (i = 0; i < n; i++){
                for (j = 0; j < n; j++){
                    SOMMA[i][j] = A[i][j] + B [i][j];
                    printf ("%3d", SOMMA[i][j]);
                }
                printf("\n");
             }
            
           
             printf ("\nProdotto matrici A * B : \n");
    
                for (i = 0; i < n; i++){
                    for (j = 0; j < n; j++){
                        for (k = 0; k < n; k++){
                        prodotto = A[i][k] * B[k][i];
                        tot = tot + prodotto;
                        PRODOTTO[i][j] = tot;
                        }
                       printf ("%3d", PRODOTTO[i][j]);
                       tot = 0;
                    }
                    printf("\n");
                }
             
    
        }else{
            printf ("n maggiore di N\n");
        }
        return 0;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.