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

Data una matrice, stampare:
1) il valore massimo e il valore minimo fra gli elementi di ciascuna riga;
2) il valore massimo e il valore minimo fra gli elementi di ciascuna colonna;
3) il valore massimo e il valore minimo fra tutti gli elementi

mostra soluzione

/*
CLAUDIO CARDINALE III AI
Data una matrice, stampare:
1) il valore massimo e il valore minimo fra gli elementi di ciascuna riga;
2) il valore massimo e il valore minimo fra gli elementi di ciascuna colonna;
3) il valore massimo e il valore minimo fra tutti gli elementi
*/
#include<stdio.h>
#define MAX 1000
int main(){
	
	//dichiarazioni
	
	int r,c,j,i,mat[MAX][MAX],posmini=0,posminj=0,posmaxi=0,posmaxj=0,posminr[MAX],posmaxr[MAX],posminc[MAX],posmaxc[MAX];
	
	
	//acquisizione dati
	
	//lunghezza matrice
	do{
		printf("inserire r : ");
		scanf("%d",&r);
		printf("inserire c : ");
		scanf("%d",&c);
	}while(r<1 || r>=MAX || c<1 || c>=MAX);
	
		
	//acquisizione dati
	
	for(i=0;i<r;i++)
		for(j=0;j<c;j++){
			printf("inserire il valore alla riga %d ed alla colonna %d : ",i+1,j+1);
			scanf("%d",&mat[i][j]);
		}
	
	
	//calcoli
	
	//1°
	
	for(i=0;i<r;i++){
		posminr[i]=0;
		posmaxr[i]=0;
		for(j=0;j<c;j++)
			if(mat[i][j]<mat[i][posminr[i]])
				posminr[i]=j;
			else if(mat[i][j]>mat[i][posmaxr[i]])
				posmaxr[i]=j;
	}
	
	//2°
	
	for(j=0;j<c;j++){
		posminc[j]=0;
		posmaxc[j]=0;
		for(i=0;i<r;i++)
			if(mat[i][j]<mat[posminc[j]][j])
				posminc[j]=i;
			else if(mat[i][j]>mat[posmaxc[j]][j])
				posmaxc[j]=i;
	}
	
	//3°
	
	for(i=0;i<r;i++)
		for(j=0;j<c;j++)
			if(mat[i][j]<mat[posmini][posminj]){
				posmini=i;
				posminj=j;
			}else if(mat[i][j]>mat[posmaxi][posmaxj]){
				posmaxi=i;
				posmaxj=j;
			}
	
	
	//visualizzazione risultati
	
	printf("valori massimi e minimi righe :\n");
	for(i=0;i<r;i++)
		printf("riga %d : max = %d, min = %d\n",i+1,mat[i][posmaxr[i]],mat[i][posminr[i]]);
	
	printf("valori massimi e minimi colonne :\n");
	for(i=0;i<c;i++)
		printf("colonna %d : max = %d, min = %d\n",i+1,mat[posmaxc[i]][i],mat[posminc[i]][i]);
	
	printf("massimo valore totale : %d, minimo valore totale : %d\n",mat[posmaxi][posmaxj],mat[posmini][posminj]);
}

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