logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

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.

mostra soluzione

/*
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");
}

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2024 thecsea.it (Claudio Cardinale - [email protected])! Tutti i diritti riservati. - contattaci