Programmazione

  • Materia: Programmazione
  • Visto: 3316
  • Data: 07/05/2008
  • Di: Redazione StudentVille.it

Linguaggio C: i due numeri maggiori tra 10 in input [E.3-27]

esercizio svolto o teoria

A cura di: Administrator

/*
 * Trovate i due numeri maggiori tra 10 valori, usando un approccio
 * simile all'Esercizio 3.24. Nota: potrete prendere in input ogni
 * valore soltanto una volta.
 *
 * SVILUPPO (top-down per raffinamenti successivi)
 *
 * TOP) prendere in input 10 valori, determinare i due maggiori
 *
 * RA1) inizializzare counter a 1
 *      prendere in input il primo valore
 *      memorizzarlo in Max, incrementare counter di 1
 *      prendere in input il secondo valore
 *      memorizzarlo in max, incrementare counter di 1
 *      se Max minore di max:
 *          memorizzare Max in tmp
 *          copiare max in Max, tmp in max
 *      finché counter maggiore o uguale a 10:
 *          prendere in input un valore
 *          se valore maggiore Max:
 *              copiare in max Max e in Max il nuovo valore
 *          altrimenti se valore maggiore di max:
 *              copiare in max il valore
 *          incrementare counter di 1
 *      stampare Max e max
 *      terminare programma
 */
#include <stdio.h>
int
main(void)
{
	int counter, Max, max, number;
	counter = 1;
	printf("Enter %dst number: ", counter);
	scanf("%d", &Max);
	counter = counter + 1;
	printf("Enter %dst number: ", counter);
	scanf("%d", &max);
	counter = counter + 1;
	/* scambia i valori (in Max il massimo dei due) */
	if (Max < max) {
		number = Max;
		Max = max;
		max = number;
	}
	while (counter <= 10) {
		printf("Enter %dst number: ", counter);
		scanf("%d", &number);
		if (number > Max){
			max = Max;
			Max = number;
		} else if (number > max)
			max = number;
		counter = counter + 1;
	}
	printf("The maximum values are %d and %d\n", Max, max);
	return (0);
}