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 le somme degli elementi delle cornici più esterne di due matrici A(R1 x C1) e B(R2 x C2), entrambe contenenti valori numerici, sono uguali.

Definire le matrici globali
Funzione confronta: passando C1,C2,R1,R2 come parametri, ritorna 1 se le cornici sono uguali, 0 se non lo sono.

mostra soluzione

/*
CLAUDIO CARIDNALE 3AI
Verificare se le somme degli elementi delle cornici più esterne di due matrici A(R1 x C1) e B(R2 x C2), entrambe contenenti valori numerici, sono uguali.

Definire le matrici globali
Funzione confronta: passando C1,C2,R1,R2 come parametri, ritorna 1 se le cornici sono uguali, 0 se non lo sono.
*/
#include<stdio.h>
#define MAX 1000
int confronta(int C1, int C2, int R1, int R2);
int mat1[MAX][MAX];
int mat2[MAX][MAX];

int main(){
	//dichiarazioni
	int i,j,C1,C2,R1,R2;
	
	//acquisizione lunghezze
	//prima matrice
	do{
		printf("inserire il numero di righe dellla prima matrice : ");
		scanf("%d",&R1);
		printf("inserire il numero di colonne dellla prima matrice : ");
		scanf("%d",&C1);
	}while(R1<1 || R1>=MAX || C1<1 || C1>=MAX);
	
	//seconda matrice
	do{
		printf("inserire il numero di righe dellla seconda matrice : ");
		scanf("%d",&R2);
		printf("inserire il numero di colonne dellla seconda matrice : ");
		scanf("%d",&C2);
	}while(R2<1 || R2>=MAX || C2<1 || C2>=MAX);
	
	//acquisizione dati
	
	//prima matrice
	for(i=0;i<R1;i++)
		for(j=0;j<C1;j++){
			printf("inserire il valore della riga %d e della colonna %d della prima matrice : ",i+1,j+1);
			scanf("%d",&mat1[i][j]);
		}
	
	//seconda matrice
	for(i=0;i<R2;i++)
		for(j=0;j<C2;j++){
			printf("inserire il valore della riga %d e della colonna %d della seconda matrice : ",i+1,j+1);
			scanf("%d",&mat2[i][j]);
		}
	//confronto
	if(confronta(C1,C2,R1,R2))
		printf("le somme delle due cornici sono uguali\n");
	else
		printf("le somme delle due cornici non sono uguali\n");
	
}

int confronta(int C1, int C2, int R1, int R2){
	//dichiarazioni
	int i,j,somma1=0,somma2=0;
	
	//somme
	
	//prima matrice
	for(i=0;i<R1;i++)
		for(j=0;j<C1;j++)
			if(i==0 || j==0 || i==R1-1 || j==C1-1)
				somma1 += mat1[i][j];
	
	//seconda matrice
	for(i=0;i<R2;i++)
		for(j=0;j<C2;j++)
			if(i==0 || j==0 || i==R2-1 || j==C2-1)
				somma2 += mat2[i][j];
	
	//confronto
	return !(somma1-somma2);
}

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