Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [C] Implementazione di un menu....

    Ciauz a tutti!!!

    Ho scritto il seguente programma in C che dati due numeri in input calcola il massimo comun divisore(MCD) e il minimo comune multiplo(mcm).Il programma funziona correttamente....

    codice:
    #include <stdio.h>
    int massimoComunDivisore(int n1, int n2);
    int minimoComuneMultiplo(int n1, int n2);
    int main(void)
    {
     int num1,num2;
     int mcm,mcd;
     printf("Inserisci due numeri interi separati da uno spazio= ");
     scanf("%d%d",&num1,&num2);
     mcm=minimoComuneMultiplo(num1, num2);
     mcd=massimoComunDivisore(num1, num2);
     printf("\nIl m.c.m. tra %d e %d e' %d\n",num1, num2, mcm);
     printf("\nL'M.C.D. tra %d e %d e' %d\n",num1, num2, mcd);
     return 0;
     }
    
     int minimoComuneMultiplo(int n1,int n2)
        {
        return n1*n2/massimoComunDivisore(n1, n2);
        }
     int massimoComunDivisore (int n1,int n2)
    
      {
        int resto,a,b;
        a=n1;
        b=n2;
        while(b>0)
          {
           resto=a%b;
           a=b;
           b=resto;
          }
    Ma vorrei aggiungere dentro questo programma un menu del tipo seguente...che in base se scrivo M o m scriva in output il MCD o mcm,a differenza del programma che ho scritto inzialmente che li scrive sempre entrambi...
    codice:
    char risposta;
    printf("Scrivi M per calcolare il MCD o m per calcolare il mcm");
    scanf("%c",&risposta);
    if (risposta=='M')
      printf("Esegue la parte del mcd e scrive il risultato");
       else
           if (risposta=='m')
              printf("esegue la parte del mcm e scrive il risultato");
                 else
                      printf("scelta errata");
    ma nn so come unirlo al programma iniziale.........sareste cosi' gentile da farmi vedere il sorgente??

    grazie mille
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  2. #2

    UP UP

    Nessuno che mi possa aiutare???

    grazie
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #3
    Mi sono permesso di riscrivere un pò il tuo programma
    (la funzione del calcolo del massimo comune divisore era sbagliata e bloccava il programma)

    eccotelo completo con l'aggiunta del menu:

    #include <stdio.h>
    int massimo(int n1, int n2);
    int minimo (int n1, int n2);
    int num1,num2=0;
    int mcm,mcd,c;
    int main()
    {
    do{
    printf("\nCalcolo MCD e mcm:\n"
    "\t\t1-Inserire i numeri:\n"
    "\t\t2-Calcola MCD:\n"
    "\t\t3-Calcola mcm:\n"
    "\t\t0-EXIT\n");
    scanf("%d",&c);
    if (c<0 || c>3)
    printf("numero errato\n");
    else{
    switch(c){
    case (1):
    printf("Inserisci due numeri interi: \n");
    scanf("%d %d",&num1,&num2);
    break;

    case (2):
    mcd=massimo(num1, num2);
    printf("il massimo comune divisore e' %d\n",mcd);
    break;

    case (3):
    mcm=minimo(num1, num2);
    printf("il minimo comune multiplo e' %d\n",mcm);
    break;

    default:
    printf("fine programma");
    }
    }
    }
    while(c!=0);
    return 0;
    }

    int minimo(int n1,int n2)
    {
    int a;
    a=n1*n2/massimo(n1, n2);
    return a;
    }

    int massimo(int n1,int n2)
    {
    while (n1 != n2)
    {
    if (n1 > n2)
    {
    n1 = n1 - n2;
    }
    else
    {
    n2 = n2 - n1;
    }
    }
    return n1;
    }

    Spero di averti fatto cosa gradita.
    Ciao

  4. #4
    grazie 10000000 ora lo provo :gren:
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    Originariamente inviato da paolo314

    (la funzione del calcolo del massimo comune divisore era sbagliata e bloccava il programma)
    sicuro??l'ho provata varie volte e nn mi è sembrato mi puoi speigare??
    thz
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da andrea_NET-_DSL
    sicuro??l'ho provata varie volte e nn mi è sembrato mi puoi speigare??
    thz
    Infatti la funzione è esatta!
    "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

  7. #7
    Originariamente inviato da LeleFT
    Infatti la funzione è esatta!
    infatti........ora vediamo che mi dice...

    X PAOLO: senti potresti farmi vedere il programma che hai fatto ma usando invece dei numeri x il menu la lettera M per fare l'MCD la m per l'mcm e quindi usando una variabile char x questo scopo grazie

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  8. #8
    Ragazzi scusate se rompo ma sono alle prime armi in c......allora il programma postato inizialmente da me va bene e calcola senza problemi sia il massimo comun divisore che il minimo comune multiplo,come confermato , il mio prob che ci vorrei mettere un menu,che ho scritto a a parte sempre postato all'inizio, che se scrivo M mi scrive il massimo comun divisore mentre se scrivo m il minimo comune multiplo, per far questo ho usato una var char.SOLO CHE NN SO UNIRLI.....CHI SAREBBE COSI' GENTILE DA FARMI VEDERE COME SI FA??AH SENZA USARE il CASE OF che da quanto ho studiato nn puoi usare la scelta con caratteri,come devo fare io M o m, ma solo con numeri,1 2...,

    GRAZIE
    e aiutatemi

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    /* ... */

    char c;

    c = getch();
    if ( c == 'M' )
    /* massimo */ ;
    else if ( c == 'm' )
    /* minimo */ ;
    else
    /* qualcos altro! */ ;

  10. #10
    Originariamente inviato da $$$
    /* ... */

    char c;

    c = getch();
    if ( c == 'M' )
    /* massimo */ ;
    else if ( c == 'm' )
    /* minimo */ ;
    else
    /* qualcos altro! */ ;
    si questo lo so ho pure scritto sul primo post in modo + dettagliato è che nn so come unirlo al programma principale che ho sempre postato all'inizio...........
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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.