[c] Funzione di RETURN???

di il
3 risposte

[c] Funzione di RETURN???

Salve a tutti..ho appena creato un programma, dove in questo programma c'è un menù, l'utente sceglie l'operazione da fare e il programma lo calcola, però devo fare in modo che appena il programma finisca di calcolare l'operazione richiesta ritorni al menù. Per far questo ho bisogno del return ma non so come fare, dove metterlo e come farlo funzionare...qualcuno mi aiuto per favoreeeeee

3 Risposte

  • Re: [c] Funzione di RETURN???

    Postare il codice che hai fatto così lo modifichiamo?
  • Re: [c] Funzione di RETURN???

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    main(){
    int scelta,nElementi,nFat,i,x,nkElementi,nk,nkFat,risultato,kFat,nk1Fat,nk1,elementiRipetuti,frequenza,nFatFrequenza;
    printf("                         ************************** \n");
    printf("                            Programma di Calcolo \n");
    printf("                         ************************** \n\n");
    printf("Premi 1 per calcolare le Permutazioni Semplici\n\n");
    printf("Premi 2 per calcolare le Permutazioni con Ripetizione\n\n");
    printf("Premi 3 per calcolare le Disposizioni Semplici\n\n");
    printf("Premi 4 per calcolare le Disposizioni con Ripetizione\n\n");
    printf("Premi 5 per calcolare le Combinazioni Semplici\n\n");
    printf("Premi 6 per calcolare le Combinazioni con Ripetizione\n\n\n");
    scanf("%d",&scelta);
      
      printf("Inserisci N: ");
      scanf("%d",&nElementi);
      
      if(scelta>2)  {
        printf("Inserisci K: ");
        scanf("%d",&nkElementi);
      }
      
      if(scelta==1) { //Hai scelto di calcolare le 'Permutazioni Semplici'
        if(nElementi!=0) {
          nFat=nElementi;
          while(--nElementi) nFat=nFat*nElementi;
        }
        else nFat=1;
        printf("\nLe permutazioni semplici sono:");
        printf("\n %d\n\n",nFat);
      }
      else if(scelta==2)  { //Hai scelto di calcolare le 'Permutazioni con Ripetizione'
        if(nElementi!=0)  {
          nFat=nElementi;
          for(i=1; i<nElementi; i++) {
            nFat=nFat*(nElementi-i);
          }
        }
        else nFat=1;
          
        
        printf("Quanti elementi sono ripetuti?: ");
        scanf("%d",&elementiRipetuti);   
        while(elementiRipetuti>nElementi) {
          printf("ERRORE! Il numero di elementi ripetuti %d supera il numero di elementi %d.\n",elementiRipetuti,nElementi);
          printf("Ristabilisci quanti elementi sono ripetuti?: ");
          scanf("%d",&elementiRipetuti);
        }
         risultato=1;
        for(i=1;i<=elementiRipetuti;i++)  {
          printf("Dammi la frequenza del %d elemento: ",i);
          scanf("%d",&frequenza);
          if( frequenza!=0)  {
            nFatFrequenza=frequenza;
            for(x=1; x<frequenza; x++) {
              nFatFrequenza=nFatFrequenza*(frequenza-x);
            }
          }
          else  nFatFrequenza=1;
          risultato=risultato*nFatFrequenza;
        }
        printf("\nLe permutazioni con ripetizioni dei dati inseriti sono:");
        printf("\n%d\n\n",(nFat/risultato));
      }
      else if(scelta==3)  { //Disposizioni semplici
        if( nElementi!=0)  {
          nFat=nElementi;
          // calcolo il fattoriale di n!
          for(i=1; i<nElementi; i++) {
            nFat=nFat*(nElementi-i);
          }
        }  
        else nFat=1;
        nkFat=nk=nElementi-nkElementi;
        if( nk!=0)  {
          //calcolo il fattoriale di (n-k)!
          for(i=1; i<nk; i++) {
            nkFat=nkFat*(nk-i);
          }
        }
        else nkFat=1; 
        risultato=nFat/nkFat;
        printf("\nLe disposizioni semplici sono:");
         printf("\n %d\n\n",risultato);
      }
      else if(scelta==4)  { //Disposizioni con ripetizione
        // calcolo la potenza k di n.
        nFat=nElementi;
        for(i=1; i<nkElementi; i++) {
          nFat=nFat*nElementi;
        }
        printf("\nLe disposizioni con ripetizioni sono:");
        printf("\n %d\n\n",nFat);
      }
      else if(scelta==5)  { //Combinazioni semplici
        // calcolo il fattoriale di n!
        if(nElementi!=0) {    
          nFat=nElementi;
          for(i=1; i<nElementi; i++) {
            nFat=nFat*(nElementi-i);
          }
        }
        else nFat=1;
        //calcolo il fattoriale di (n-k)!
        nkFat=nk=nElementi-nkElementi;
        if(nk!=0) {
          for(i=1; i<nk; i++) {
            nkFat=nkFat*(nk-i);
          }
        }
        else nkFat=1;
        //calcolo il fattoriale di k!
        if(nkElementi!=0) {
          kFat=nkElementi;
          for(i=1; i<nkElementi; i++) {
            kFat=kFat*(nkElementi-i);
          }
        } 
        else kFat=1;
        risultato=nFat/(nkFat*kFat);
        printf("\nLe combinazioni semplici dei dati inseriti sono:");
        printf("\n %d\n\n",risultato);
      }
      else if(scelta==6)  { //Combinazioni con ripetizione
        // calcolo il fattoriale di (n+k-1)!
        nk1Fat=nk1=(nElementi+nkElementi-1);
        if(nk1Fat!=0) {
          for(i=1; i<nk1; i++) {
            nk1Fat=nk1Fat*(nk1-i);
          }
        } 
        else  nk1Fat=1;
        //calcolo il fattoriale di (n-k)!
         if(nkFat!=0) {
          nkFat=nk=nElementi-1;
          for(i=1; i<nk; i++) {
            nkFat=nkFat*(nk-i);
          }
        }
        else  nkFat=1;   
        //calcolo il fattoriale di k!
        if(nkElementi!=0) {
          kFat=nkElementi;
          for(i=1; i<nkElementi; i++) {
            kFat=kFat*(nkElementi-i);
          }
        }
        else   kFat=1;  
        risultato=nk1Fat/(nkFat*kFat);
        printf("\nLe combinazioni con ripetizione dei dati inseriti sono:");
        printf("\n %d\n\n",risultato);
      }
    
      system("PAUSE");
      return 0;
     
    }
    
    eccolo
  • Re: [c] Funzione di RETURN???

    
        #include <stdio.h>
        #include <stdlib.h>
        #include <math.h>
        main(){
        int scelta,nElementi,nFat,i,x,nkElementi,nk,nkFat,risultato,kFat,nk1Fat,nk1,elementiRipetuti,frequenza,nFatFrequenza;
    do
    {
        printf("                         ************************** \n");
        printf("                            Programma di Calcolo \n");
        printf("                         ************************** \n\n");
        printf("Premi 1 per calcolare le Permutazioni Semplici\n\n");
        printf("Premi 2 per calcolare le Permutazioni con Ripetizione\n\n");
        printf("Premi 3 per calcolare le Disposizioni Semplici\n\n");
        printf("Premi 4 per calcolare le Disposizioni con Ripetizione\n\n");
        printf("Premi 5 per calcolare le Combinazioni Semplici\n\n");
        printf("Premi 6 per calcolare le Combinazioni con Ripetizione\n\n\n");
        printf("Premi 7 per uscire\n\n\n");
        scanf("%d",&scelta);
         
          printf("Inserisci N: ");
          scanf("%d",&nElementi);
         
          if(scelta>2)  {
            printf("Inserisci K: ");
            scanf("%d",&nkElementi);
          }
         
          if(scelta==1) { //Hai scelto di calcolare le 'Permutazioni Semplici'
            if(nElementi!=0) {
              nFat=nElementi;
              while(--nElementi) nFat=nFat*nElementi;
            }
            else nFat=1;
            printf("\nLe permutazioni semplici sono:");
            printf("\n %d\n\n",nFat);
          }
          else if(scelta==2)  { //Hai scelto di calcolare le 'Permutazioni con Ripetizione'
            if(nElementi!=0)  {
              nFat=nElementi;
              for(i=1; i<nElementi; i++) {
                nFat=nFat*(nElementi-i);
              }
            }
            else nFat=1;
             
           
            printf("Quanti elementi sono ripetuti?: ");
            scanf("%d",&elementiRipetuti);   
            while(elementiRipetuti>nElementi) {
              printf("ERRORE! Il numero di elementi ripetuti %d supera il numero di elementi %d.\n",elementiRipetuti,nElementi);
              printf("Ristabilisci quanti elementi sono ripetuti?: ");
              scanf("%d",&elementiRipetuti);
            }
             risultato=1;
            for(i=1;i<=elementiRipetuti;i++)  {
              printf("Dammi la frequenza del %d elemento: ",i);
              scanf("%d",&frequenza);
              if( frequenza!=0)  {
                nFatFrequenza=frequenza;
                for(x=1; x<frequenza; x++) {
                  nFatFrequenza=nFatFrequenza*(frequenza-x);
                }
              }
              else  nFatFrequenza=1;
              risultato=risultato*nFatFrequenza;
            }
            printf("\nLe permutazioni con ripetizioni dei dati inseriti sono:");
            printf("\n%d\n\n",(nFat/risultato));
          }
          else if(scelta==3)  { //Disposizioni semplici
            if( nElementi!=0)  {
              nFat=nElementi;
              // calcolo il fattoriale di n!
              for(i=1; i<nElementi; i++) {
                nFat=nFat*(nElementi-i);
              }
            } 
            else nFat=1;
            nkFat=nk=nElementi-nkElementi;
            if( nk!=0)  {
              //calcolo il fattoriale di (n-k)!
              for(i=1; i<nk; i++) {
                nkFat=nkFat*(nk-i);
              }
            }
            else nkFat=1;
            risultato=nFat/nkFat;
            printf("\nLe disposizioni semplici sono:");
             printf("\n %d\n\n",risultato);
          }
          else if(scelta==4)  { //Disposizioni con ripetizione
            // calcolo la potenza k di n.
            nFat=nElementi;
            for(i=1; i<nkElementi; i++) {
              nFat=nFat*nElementi;
            }
            printf("\nLe disposizioni con ripetizioni sono:");
            printf("\n %d\n\n",nFat);
          }
          else if(scelta==5)  { //Combinazioni semplici
            // calcolo il fattoriale di n!
            if(nElementi!=0) {   
              nFat=nElementi;
              for(i=1; i<nElementi; i++) {
                nFat=nFat*(nElementi-i);
              }
            }
            else nFat=1;
            //calcolo il fattoriale di (n-k)!
            nkFat=nk=nElementi-nkElementi;
            if(nk!=0) {
              for(i=1; i<nk; i++) {
                nkFat=nkFat*(nk-i);
              }
            }
            else nkFat=1;
            //calcolo il fattoriale di k!
            if(nkElementi!=0) {
              kFat=nkElementi;
              for(i=1; i<nkElementi; i++) {
                kFat=kFat*(nkElementi-i);
              }
            }
            else kFat=1;
            risultato=nFat/(nkFat*kFat);
            printf("\nLe combinazioni semplici dei dati inseriti sono:");
            printf("\n %d\n\n",risultato);
          }
          else if(scelta==6)  { //Combinazioni con ripetizione
            // calcolo il fattoriale di (n+k-1)!
            nk1Fat=nk1=(nElementi+nkElementi-1);
            if(nk1Fat!=0) {
              for(i=1; i<nk1; i++) {
                nk1Fat=nk1Fat*(nk1-i);
              }
            }
            else  nk1Fat=1;
            //calcolo il fattoriale di (n-k)!
             if(nkFat!=0) {
              nkFat=nk=nElementi-1;
              for(i=1; i<nk; i++) {
                nkFat=nkFat*(nk-i);
              }
            }
            else  nkFat=1;   
            //calcolo il fattoriale di k!
            if(nkElementi!=0) {
              kFat=nkElementi;
              for(i=1; i<nkElementi; i++) {
                kFat=kFat*(nkElementi-i);
              }
            }
            else   kFat=1; 
            risultato=nk1Fat/(nkFat*kFat);
            printf("\nLe combinazioni con ripetizione dei dati inseriti sono:");
            printf("\n %d\n\n",risultato);
          }
    }while(scelta != 7);
          system("PAUSE");
          return 0;
    
        }
    
    
    Ecco la modifica. Ti consiglio di rivedere tutto il codice cmq. Dividerlo in funzioni, mettere uno switch su scelta invece di if-else-if-else ecc.
Devi accedere o registrarti per scrivere nel forum
3 risposte