Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    mcd

    devo trovare il massimo comune divisore tra due numeri. ho provato a fare così ma non mi funziona. mi potreste dire dove sbaglio.

    codice:
    #include <stdio.h>
    #include <conio.h>
    
    int a, b, i, mcd;
    
    main()
    {
          printf("il primo numero e': ");
          scanf("%2d", &a);
          printf("il secondo numero e': ");
          scanf("%2d", &b);
          mcd=1;
          for(i=0;i<=a || b; i++)
           {
                       while(a%i==0 && b%i==0)
                        {
                                   a=a/i;
                                   b=b/i;
                                   mcd=mcd*i;
                        }
           }
            printf("mcd e': %2d", mcd);
            getch();
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    Come espressamente indicato nel regolamento interno del forum:

    1) Il linguaggio va obbligatoriamente indicato nel titolo della discussione
    2) Il titolo deve dare un'idea chiara del contenuto della discussione
    3) Il codice va postato indentato e all'interno degli appositi tag CODE
    4) Gli errori ottenuti in compilazione/esecuzione vanno riportati per facilitare chi intende darti una mano.


    Correggo ove possibile. Attendiamo di conoscere gli errori che ottieni.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    71
    prova questo

    codice:
    #include <stdio.h>
    
    int a, b, i=1, mcd;
    
    main()
    {
          printf("il primo numero e': ");
          scanf("%d", &a);
          printf("il secondo numero e': ");
          scanf("%d", &b);
         while((i<=a) || (i<=b))
           {
                       if(!(a%i) && !(b%i))
                        {
                                   
                                   mcd=i;
                        }
                        i++;
           }
            printf("mcd e': %d", mcd);
            
            fflush(stdin);
            getchar();
    }
    hai utilizzato un WHILE che svolgeva istruzioni all'infinito.
    al posto del FOR un WHILE
    e i parte da 1, non da zero. non puoi dividere per zero

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.