Massimo tra n numeri in C

Massimo tra n numeri in C

Realizziamo oggi un semplice algoritmo per il calcolo del massimo tra n numeri in C, utilizzando il ciclo for.

Prendere in input n numeri, calcolare e visualizzare il valore massimo.


Soluzione dell’algoritmo per il calcolo del massimo tra n numeri in C

Presentiamo varie soluzioni all’algoritmo proposto.

Innanzitutto chiediamo in input quanti numeri vogliamo inserire (n) e controlliamo che sia comunque un valore maggiore di zero.

Dopo con un ciclo for inseriamo i numeri. Se l’indice i è uguale a 0 allora vuol dire che il numero inserito è il primo e assegniamo a max il suo valore. Poi per ogni numero controlliamo se il numero inserito è maggiore del massimo e se si allora cambiamo il valore di max.

Infine stampiamo in output il valore massimo così ottenuto.

Ecco dunque il listato completo dell’algoritmo per il calcolo del massimo tra n numeri in C:

#include <stdio.h>

main()
{
	int n, i, num, max;
	
	do {
		printf("Quanti numeri inserire?: ");
		scanf("%d", &n);
	}while (n<=0);
	
	for(i=0;i<n;i++)
	{
		printf("Numero %d:", i+1);
		scanf("%d", &num);
		if(i==0) max=num;
		if(num>max) max=num;
	}
	
	printf("Il valore massimo e': %d\n", max);

	system("PAUSE");
}
Risoluzione passo passo dell’algoritmo

Immaginiamo di inserire 3 numeri: 9, 11, -2.

Il valore massimo è 11.

Vediamo come lo calcola l’algoritmo che abbiamo proposto:

Quindi n=3

Prima iterazione:

for(i=0;i<n;i++) { // i=0 e il test 0<3 è dunque vero
printf(“Numero %d:”, i+1); //Chiediamo il primo numero
scanf(“%d”, &num); //inseriamo il primo numero 9
if(i==0) max=num; //il test i uguale a zero è vero quindi max=9
if(num>max) max=num; // 9>9 falso
}

Seconda iterazione:

for(i=0;i<n;i++) { // i=1 e il test 1<3 è dunque vero
printf(“Numero %d:”, i+1); //Chiediamo il secondo numero
scanf(“%d”, &num); //inseriamo il secondo numero 11
if(i==0) max=num; //il test i uguale a zero è falso
if(num>max) max=num; //il test 11>9 è vero quindi max=11
}

Terza iterazione:

for(i=0;i<n;i++) { // i=2 e il test 2<3 è dunque vero
printf(“Numero %d:”, i+1); //Chiediamo il terzo numero
scanf(“%d”, &num); //inseriamo il terzo numero -2
if(i==0) max=num; //il test i uguale a zero è falso
if(num>max) max=num; //il test -2>9 è falso
}

Quindi avremo:

for(i=0;i<n;i++) { // i=3 e il test 3<3 è falso

Si esce dal ciclo for e si stampa il valore massimo, cioè 11.


Seconda soluzione dell’algoritmo per il calcolo del massimo tra n numeri in C

Nella seconda soluzione chiediamo di inserire un numero prima del ciclo e assegniamo alla variabile max questo valore. Dopo, dentro il ciclo for basterà confrontare il numero inserito con il valore massimo e se è maggiore lo sostituiamo.

Ecco dunque il listato completo:

#include <stdio.h>

main()
{
	int n, i, num, max;
	
	do {
		printf("Quanti numeri inserire?: ");
		scanf("%d", &n);
	}while (n<=0);
	
	printf("Inserisci il 1 numero: ");
	scanf("%d", &max);
	
	for(i=1;i<n;i++)
	{
		printf("Inserisci il %d numero: ", i+1);
		scanf("%d", &num);
		if(num>max) max=num;
	}
	
	printf("Il valore massimo e': %d\n", max);

	system("PAUSE");
}

Chiaramente possono esserci altre soluzioni all’algoritmo per il calcolo del massimo tra n numeri in C.

Nelle prossime lezioni affronteremo ancora esercizi utilizzando le strutture iterative.

Alcuni link utili

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *