/* File: mcd3.c */ /* Time-stamp: "2001-03-20 11:54:12 calvanes" */ /* Scopo: cicli indefiniti conrollo sui dati in ingresso */ /* Legge due numeri interi positivi e calcola il massimo comun divisore. Utilizza l'algoritmo di Euclide nella versione senza resti. Effettua un controllo sulla validita` dei due numeri letti. */ #include <stdio.h> int main(void) { int m, n; do { printf("Due interi positivi? "); scanf("%d%d", &m, &n); if (m <= 0 || n <= 0) printf("Errore: i numeri devono essere maggiori di 0\n"); } while (m <= 0 || n <= 0); /* la stampa del messaggio che utilizza i valori iniziali m e n deve essere fatta prima del calcolo in quanto tali valori vanno perduti */ printf("Il massimo comun divisore di %d e %d e` ", m, n); while (m != n) if (m > n) m -= n; else n -= m; printf("%d\n", m); return 0; }