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

Sia dato un vettore contenente i nomi di diversi tipi di volatili e una matrice contenente, per ogni tipo di volatile, il numero di uova deposte da ognuna delle 10 femmine che sono state messe sotto osservazione.
Scrivere un programma che, dopo aver caricato i dati, presenti un menu' con opzioni corrispondenti alle seguenti richieste:
1) stampa del tipo di volatile che ha deposto il minimo numero di uova sulle dieci covate;
2) stampa di quanti volatili hanno deposto un numero medio di uova che risulta maggiore e minore alla media delle uova deposte da tutti i volatili presi in osservazione.

mostra soluzione

/*
CLAUDIO CARDINALE III AI
Sia dato un vettore contenente i nomi di diversi tipi di volatili e una matrice contenente, per ogni tipo di volatile, il numero di uova deposte da ognuna delle 10 femmine che sono state messe sotto osservazione.
Scrivere un programma che, dopo aver caricato i dati, presenti un menu' con opzioni corrispondenti alle seguenti richieste:
1) stampa del tipo di volatile che ha deposto il minimo numero di uova sulle dieci covate;
2) stampa di quanti volatili hanno deposto un numero medio di uova che risulta maggiore e minore alla media delle uova deposte da tutti i volatili presi in osservazione.
*/
#include<stdio.h>
#define MAX 1000
#define F 10
int main(){
	
	//dichiarazioni
	
	int r,j,i,mat[MAX][10],somma[MAX],pos_min=0,mag=0,min=0;
	char volatili[MAX][MAX];
	float media=0;
	
	
	//acquisizione dati
	
	//lunghezza matrice
	do{
		printf("inserire il numero dei tipi di volatili : ");
		scanf("%d",&r);
	}while(r<1 || r>=MAX);
	
		
	//acquisizione dati
	
	for(i=0;i<r;i++){
			printf("inserire il tipo di volatile numero %d : ",i+1);
			getchar();
			scanf("%s",volatili[i]);
		
	}
	
	for(i=0;i<r;i++)
		for(j=0;j<F;j++){
			printf("inserire il numero di uova prodotte dalla femmina numero %d ed del tipo %s : ",j+1,volatili[i]);
			scanf("%d",&mat[i][j]);
		}
	
	
	//calcoli
	
	//1°
	
	/*for(i=0;i<r;i++){
		for(j=0;j<F;j++)
			printf("%d ",mat[i][j]);
		printf("\n");
	}*/
	
	for(i=0;i<r;i++){
		somma[i] = 0;
		for(j=0;j<F;j++)
			somma[i] += mat[i][j];
	}
	
	for(i=0;i<r;i++)
		if(somma[i]<somma[pos_min])
			pos_min = i;
	
	//2°
	
	for(i=0;i<r;i++)
		media += somma[i];
	
	media/=r*F;
	
	for(i=0;i<r;i++){
		if(((float)somma[i]/F)>media)
			mag++;
		else
			min++;
		//printf("%d - %f - %f\n",i,media,(float)somma[i]/F);
		}
	
	
	//visualizzazione risultati
	
	printf("il tipo di volatile che ha deposto meno uova e` %s, mentre il numero di tipi di volatili che hanno deposto piu` uova della media e` %d ed quello di quelli che ne hanno deposte di meno e` %d\n",volatili[pos_min],mag,min);
}

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