Official_Lusi

Official_Lusi

Nov 16th, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | Jokes | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  
  5. int numero_1, numero_2, max, min, i = 0;
  6. int resto, massimo_comun_divisore;
  7.  
  8. puts("Inserisci una coppia di numeri interi");
  9. puts("ne verra' calcolato il massimo comun divisore:");
  10.  
  11. do {
  12. scanf("%d", &numero_1);
  13. } while (numero_1 < 0);
  14.  
  15. do {
  16. scanf("%d", &numero_2);
  17. } while (numero_2 <0);
  18.  
  19. /* ho inserito due istruzioni do facendo in modo che, una volta inserito un numero esso venga verificato,
  20. se minore di 0 il programma farà reinserire solo il primo; se maggiore di zero il programma verificherà il secondo numero,
  21. se minore di 0 il programma farà reinserire solo il secondo; se maggiore di zero il programma proseguirà*/
  22. /*non ho inserito gli scanf in un solo do-while poichè nel caso in cui un solo numero fosse stato minore
  23. di zero, l'utente avrebbe dovuto inserire di nuovo anche il primo, e la cosa non risultava corretta poichè il primo numero
  24. rispettava la richiesta del programma (cioè un numero positivo)*/
  25.  
  26. if (numero_1>numero_2) {
  27. max = numero_1; min = numero_2;
  28. }
  29. else if (numero_1 == numero_2){
  30. printf("%s\t%d\n","Il massimo comun divisore e':", numero_1);
  31. return 0; //non serve proseguire poichè per la regola, il MCD è gia stato trovato
  32. }
  33. else {
  34. max = numero_2; min = numero_1;
  35. }
  36.  
  37.  
  38. resto = max % min;
  39.  
  40. for(;;){
  41. if (resto == 0){
  42. printf("%s\t%d\n","Il massimo comun divisore e':", min);
  43. break;
  44. }
  45. /*l'istruzione if alla prima esecuzione del ciclo è inutile, poichè il programma ha gia verificato
  46. la possibilità che il resto sia uguale a zero (opzione scartata se arrivati a questo punto), quindi
  47. è ovvio che alla prima esecuzione il programma sostanzialmente cominci dall'else; di conseguenza l'if servira'
  48. solo dalla seconda esecuzione del ciclo*/
  49.  
  50. else {
  51. max = min;
  52. min = resto;
  53. }
  54. resto = max % min;
  55. }
  56. getchar();
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment