Matrice simmetrica

di il
1 risposte

Matrice simmetrica

Ciao ragazzi, avrei bisogno di una mano. Devo fare un programma c che letta una matrice quadrata di interi, controlli se è simmetrica.

#include <stdio.h>
#include <stdlib.h>

void matriceA(int, int, int [][50]);
void stampaA(int, int, int [][50]);
void simmetrica(int, int, int [][50]);

main(){
       int n, m, a[50][50];
       
       printf("Digita la dimensione della matrice A:\n");
       scanf("%d%d", &n, &m);
       matriceA(n,m,a);
       stampaA(n,m,a);
       printf("\n");
       
       simmetrica(n,m,a);
       printf("\n");
       
       system("pause");
       return 0;
}

void matriceA(int n, int m, int a[][50]){
     int i, j;
     for(i=0; i<n; i++)
              for(j=0; j<m; j++){
                       printf("a[%d][%d]=",i,j);
                       scanf("%d",&a[i][j]);
              }
}


void stampaA(int n, int m, int a[][50]){
     int i, j;
     for(i=0; i<n; i++){
              printf("\n");
              for(j=0; j<m; j++)
                       printf("%5d",a[i][j]);
     }
}

void simmetrica(int n, int m, int a[][50]){
     int i, j, riga, colonna;
     for(i=0; i<n; i++)
              for(j=0; j<m; j++){
                 .........................
              }
}
Vi ringrazio anticipatamente

1 Risposte

  • Re: Matrice simmetrica

    Una risposta da uno statisco, un po' barbaro nella programmazione, potrebbe essere (assumendo che A sia la matrice in questione):
    -controlli che la riga i-esima di A sia uguale alla colonna i-esima A.Questa operazione la ripeti n volte, essendo n l'ordine della matrice.
    Una cosa del genere dovrebbe funzionare
    
    int simmetrica(int n, int a[][n])
    {
         int i, j, count=0, count_global=0;
    	for(i=0; i<n; i++)
    	{
    		for(j=0; j<n; j++)
    		{
    			if(a[i][j]==a[j][i]) count+=1;
    	        }
    
    	if(count==n) count_global+=1;
    	count=0;
    
    	}
    
    	if(count_global==n){ return(1); }else{ return(0); }
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte