01. Es. svolto: MCD
Traccia:
Richiedere all'utente di inserire due o più numeri interi e restituire il MCD.
Strategia:
L'algoritmo di Euclide (cfr. il diagramma di flusso nel par. 5.98.5.2) consente di determinare il MCD tra due numeri.
Conviene implementare una funzione per il calcolo del MCD e richiamare quest'ultima in cascata passando due numeri alla volta.
Svolgimento:
#include <stdio.h>
int EuclideMCD(int m, int n)
{
int appo;
while (m>0)
{
if (n>m)
{
appo=m;
m=n;
n=appo;
}
m=m-n;
}
return n;
}
int main()
{
int x, x1, x2, tmp;
printf("Inserire due o piu' numeri positivi (terminare con 0): ");
scanf("%d %d", &x1, &x2);
if (x1<=0 || x2<=0){
printf("Errore di inserimento dei dati\n");
return -1;
}
tmp=EuclideMCD(x1,x2);
scanf("%d", &x);
while (x>0)
{
tmp=EuclideMCD(tmp, x);
scanf("%d", &x);
}
printf("MCD: %d\n", tmp);
return 0;
}
Notare che nella definizione della funzione EuclideMCD() i parametri m ed m sono modificati.
Queste modifiche non si propagano al di fuori della funzione pertanto le variabili del main non sono alterate a seguito di tali modifiche.
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 02. Introduzione al C
Paragrafo: 14. Definizione di funzioni
Approfondimento: 01. Es. svolto: MCD
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. Hello World - 02. Variabile di tipo int - 03. Input da tastiera - 04. Controllo condizionale if - 05. Operatori logici - 06. Ciclo while - 07. Operatore modulo - 08. Array - 09. Ciclo for - 10. Ciclo do/while - 11. Variabili di tipo float - 12. Funzione random() - 13. Impostazione del set di caratteri - 14. Definizione di funzioni - 15. Passaggio di parametri: gli array - 16. Variabili: visibilità e durata - 17. Il tipo char - 18. I file - 19. Funzioni matematiche
Indice degli approfondimenti: 01. Es. svolto: MCD - 02. Es. svolto: Cifra