Verificare se una matrice quadrata di ordine (r X r) è diagonalmente dominante.
Sugg: controllare se la somma dei valori assoluti degli elementi su ciascuna riga, escluso l'elemento sulla diagonale principale, e' minore del valore assoluto dell'elemento corrispondente sulla diagonale principale.
/*
CLAUDIO CARDINALE III AI
Verificare se una matrice quadrata di ordine (r X r) è diagonalmente dominante.
Sugg: controllare se la somma dei valori assoluti degli elementi su ciascuna riga, escluso l'elemento sulla diagonale principale, e' minore del valore assoluto dell'elemento corrispondente sulla diagonale principale.
*/
#include<stdio.h>
#include<stdlib.h>
#define MAX 1000
int main(){
//dichiarazioni
int r,j,i,mat[MAX][MAX],diag,ele,dom=1;
//acquisizione dati
//lunghezza matrice
do{
printf("inserire r : ");
scanf("%d",&r);
}while(r<1 || r>=MAX);
//acquisizione dati
for(i=0;i<r;i++)
for(j=0;j<r;j++){
printf("inserire il valore alla riga %d ed alla colonna %d : ",i+1,j+1);
scanf("%d",&mat[i][j]);
}
//calcoli
for(i=0;i<r && dom;i++){
diag=0;
ele=0;
for(j=0;j<r;j++)
if(j==i)
diag=abs(mat[i][j]);
else
ele+=abs(mat[i][j]);
if(diag<=ele)
dom=0;
}
//visualizzazione risultati
if(dom)
printf("la diagonale e` dominante\n");
else
printf("la diagonale non e` dominante\n");
}