Piccolo dubbio in C

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts
  • john89
    Inattivo
    • Jan 2008
    • 434
    • 133
    • 61
    • Send PM

    Piccolo dubbio in C

    Scusate se disturbo ancora ma sto provando a fare qualche esercizio banale prima del compito di informatica e ho trovato questo (scritto dalla prof):

    Scrivere una funzione o procedura in linguaggio C che riceve come unico parametro formale una stringa e conta quanti sono le 'X' e gli '1' presenti all'interno. La funzione o procedura deve restituire i due numeri così ottenuti.

    Io ho fatto una procedura di questo genere:
    void conta(char stringa[], int* contax, int* conta1)
    che restituisce per indirizzo i due valori, oppure potevo fare una funzione int che ne restituiva uno per valore e l'altro per indirizzo.
    Solo che rileggendo il testo c'è scritto che la funzione deve ricevere come UNICO parametro formale la stringa.
    Le possibilità sono tre: o i puntatori non sono considerati parametri formali, o c'è un modo per restituire valori che non conosco oppure la prof non è stata molto chiara.

    Aiutatemi perfavore perchè sono molto gli esercizi che ho trovato in cui il testo non è molto chiaro e rischierei di sbagliare tutto l'esercizio (facilissimo) per una banalità.
  • laplace
    Bodyweb Advanced
    • Dec 2005
    • 7982
    • 960
    • 1,370
    • Send PM

    #2
    potresti riportare il testo originale dell'esercizio?

    Commenta

    • john89
      Inattivo
      • Jan 2008
      • 434
      • 133
      • 61
      • Send PM

      #3
      Originariamente Scritto da laplace Visualizza Messaggio
      potresti riportare il testo originale dell'esercizio?
      Le due righe che ho riportato sono il testo originale

      Commenta

      • Sam Fisher
        Bodyweb Advanced
        • Jan 2006
        • 4257
        • 576
        • 583
        • Ministero della Pubblica Istruzione
        • Send PM

        #4
        Originariamente Scritto da john89 Visualizza Messaggio
        Scusate se disturbo ancora ma sto provando a fare qualche esercizio banale prima del compito di informatica e ho trovato questo (scritto dalla prof):

        Scrivere una funzione o procedura in linguaggio C che riceve come unico parametro formale una stringa e conta quanti sono le 'X' e gli '1' presenti all'interno. La funzione o procedura deve restituire i due numeri così ottenuti.

        Io ho fatto una procedura di questo genere:
        void conta(char stringa[], int* contax, int* conta1)
        che restituisce per indirizzo i due valori, oppure potevo fare una funzione int che ne restituiva uno per valore e l'altro per indirizzo.
        Solo che rileggendo il testo c'è scritto che la funzione deve ricevere come UNICO parametro formale la stringa.
        Le possibilità sono tre: o i puntatori non sono considerati parametri formali, o c'è un modo per restituire valori che non conosco oppure la prof non è stata molto chiara.

        Aiutatemi perfavore perchè sono molto gli esercizi che ho trovato in cui il testo non è molto chiaro e rischierei di sbagliare tutto l'esercizio (facilissimo) per una banalità.

        li devi passare entrmbi per indirizzo o al max definisci la funzione cm int e fai passare un parametro per indirizzo e uno cm ritorno della funzione int.


        Edit come ha scritto Laplace si può fare .Cioè passando solo la stringa di caratteri alla funzione ma per farlo funzionare devi definire i puntatori che contano le x e gli 1 inseriti al di fuori del main e della funzione stessa nella cosidetta area di memoria globale.
        Last edited by Sam Fisher; 04-02-2009, 21:45:18.
        Pillola rossa o pillola blu ????

        La risposta è dentro te.

        Commenta

        • Sergio
          Administrator
          • May 1999
          • 88049
          • 2,172
          • 2,795
          • United States [US]
          • Florida
          • Send PM

          #5
          Ecco, copia ed incolla :


          Codice:
          #include <iostream> 
          #include <windows.h> 
          #include <iomanip> //libreria per SETPRECISION 
          using namespace std; 
          bool gotoxy(const WORD x, const WORD y); 
          void index (void); 
          void esegui (void); 
          void SetColor(unsigned short color); 
          int i,N,quot,val,k,sq,bonus; 
          float tot; 
          char c; 
          
          int main() 
          { 
            HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);   
            index(); 
            if (N==0) 
                    esegui(); 
            if (N==1) 
                     { 
                      system("CLS"); 
                      SetColor(14);                     
                      cout<<"Programma che calcola la vincita di una scommessa"<<endl; 
                      SetColor(12); 
                      cout<<"ATTENZIONE:Inserisci le percentuali non scontate e senza virgole!!"<<endl; 
                      c=183; 
                      SetColor(10); 
                      cout<<"NOVIT"<<c<<": Vine calcolato anche il Bonus squadre!"<<endl; 
                      gotoxy(0,5); 
                      SetColor(15); 
                      cout<<"PER ESEMPIO:"; 
                      gotoxy(0,7); 
                      SetColor(7); 
                      cout<<"              |  1  |  X  |  2  |"<<endl; 
                      cout<<"Napoli-Inter  |3.50 |2.20 |2.30 |"<<endl; 
                      gotoxy(0,10); 
                      cout<<"Per mettere la vittoria del Napoli, la percentuale da inserire Š = 350"; 
                      gotoxy(0,12); 
                      SetColor(8); 
                      cout<<"Ovviamente ad ogni inserimento dovete premere 'INVIO'."; 
                      gotoxy(0,14); 
                      cout<<"Premi 'INVIO' per continuare!."; 
                      getchar(); 
                      getchar(); 
                      esegui();                       
                     } 
            getchar(); 
            getchar(); 
             
          } 
          
          bool gotoxy(const WORD x, const WORD y)   
          {   
              COORD posizione;   
              posizione.X = x;   
              posizione.Y = y;   
              return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), posizione);   
          }   
          
          void index (void) 
          { 
            do 
            { 
            if (N>=2) 
            cout<<"\a";         
            system("CLS"); 
            SetColor(11);             
            c=187; 
            gotoxy(79,0); 
            cout<<c; 
            c=201; 
            gotoxy(0,0); 
            cout<<c; 
            c=200; 
            gotoxy(0,24); 
            cout<<c; 
            c=188; 
            gotoxy(79,24); 
            cout<<c; 
            c=205; 
            gotoxy(1,0); 
            for (i=0;i<78;i++) 
                             { 
                              cout<<c;     
                             } 
            gotoxy(1,24);                 
            for (i=0;i<78;i++) 
                             { 
                              cout<<c;     
                             }                   
             c=186; 
             for (i=0;i<23;i++) 
                             { 
                              gotoxy(0,1+i); 
                              cout<<c;             
                             } 
             for (i=0;i<23;i++) 
                             { 
                              gotoxy(79,1+i); 
                              cout<<c;             
                             } 
              SetColor(10);                 
              gotoxy(13,2); 
              cout<<"//////     //////  ////////  ////////   //////   ///////    "; 
              gotoxy(12,3); 
              cout<<"//    //   //         //        //      //       //     //   "; 
              gotoxy(11,4); 
              cout<<"///////    //////     //        //      //////   ///////      "; 
              gotoxy(10,5); 
              cout<<"//    //   //         //        //      //       //    //      "; 
              gotoxy(9,6); 
              cout<<"///////    //////     //        //      //////   //     //      "; 
              gotoxy(9,8); 
              SetColor(2); 
              cout<<"Scommesse sicure!!"; 
              gotoxy(26,14); 
              SetColor(3); 
              cout<<"Inserisci '0' per continuare"; 
              gotoxy(26,15); 
              cout<<"Inserisci '1' per Info";   
              c=205; 
              SetColor(8); 
              for (i=0;i<6;i++) 
                              { 
                              gotoxy(27+i,16); 
                              cout<<c;     
                              } 
              c=187; 
              gotoxy(32,16); 
              cout<<c; 
              c=186; 
              gotoxy(32,17); 
              cout<<c; 
              gotoxy(26,17); 
              cout<<c; 
              c=201; 
              gotoxy(26,16); 
              cout<<c; 
              c=200; 
              gotoxy(26,18); 
              cout<<c; 
              c=188; 
              gotoxy(32,18); 
              cout<<c; 
              c=205; 
              for (i=0;i<5;i++) 
                              { 
                              gotoxy(27+i,18); 
                              cout<<c;           
                              } 
              gotoxy(54,23); 
              c=184; 
              SetColor(15); 
              cout<<c<<" Copyright TotiPianurese";                 
              gotoxy(29,17); 
              SetColor(3); 
              cin>>N; 
            } 
            while(N>=2);                             
          } 
          
          void SetColor(unsigned short color) 
          { 
          HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); 
          SetConsoleTextAttribute(hCon,color); 
          } 
          
          void esegui(void) 
             { 
                     do 
                      { 
                       system("CLS"); 
                       SetColor(11);       
                       cout<<"Inserisci la puntata in euro = "; 
                       cin>>quot;   
                      } 
                      while(quot<0); 
            sq=0; 
            bonus=0; 
            k=2; 
            i=1; 
            tot=1; 
            c=167; 
            while (val!=999) 
                            { 
                             gotoxy(0,k); 
                             k=k+2; 
                             sq++; 
                             if (sq>=5) 
                                      bonus=bonus+5; 
                             SetColor(11);         
                             cout<<"Inserisci la "<<i<<c<<" percentuale = "; 
                             cin>>val; 
                             if (val<=100) 
                                          { 
                                           gotoxy(0,k); 
                                           SetColor(12); 
                                           cout<<"Errore. La percentuale inserita non esiste"<<endl; 
                                           cout<<"Chiudere e riaprire il programma \a"; 
                                           getchar(); 
                                           getchar(); 
                                          } 
                             if (i==1) 
                                     { 
                                      SetColor(14);         
                                      cout<<"Dopo aver inserito tutte le vostre puntate, nell'ultima inserite 999"; 
                                     } 
                             i++; 
                             if (val!=999) 
                                          { 
                                          tot=tot*quot*val/100; 
                                          quot=1;       
                                          } 
                             if (tot<=0) 
                                        { 
                                         gotoxy(0,k); 
                                         SetColor(12); 
                                         cout<<"Errore"<<endl; 
                                         k++; 
                                         if (tot<0) 
                                                   { 
                                                    cout<<"Il vincita Š troppo grande da essere contata!"<<endl; 
                                                    getchar(); 
                                                    getchar();         
                                                   } 
                                         
                                        } 
                                        else 
                                        { 
                                        gotoxy(46,k-2); 
                                        if (val!=999) 
                                                     { 
                                                      SetColor(10);                 
                                                      cout<<"<-- Vincita Š circa "<<setiosflags(ios::fixed)<<setprecision(2)<<tot<<" euro!!";                 
                                                     } 
                                        }                                   
                            } 
            gotoxy(0,k); 
            bonus=bonus+95; 
            tot=tot*bonus/100; 
            SetColor(3);                 
            cout<<"La vincita in totale Š circa "<<setiosflags(ios::fixed)<<setprecision(2)<<tot<<" euro"; //stampa oltre alla parte intera anche le prime due cifre decimali 
            gotoxy(0,k+3); 
            SetColor(2); 
            cout<<"Il risultato finale si conta partendo dopo il punto, da destra"<<endl; 
            cout<<"verso sinistra e mettendo ogni 3 cifre la virgola."<<endl; 
            cout<<"Ad esempio: 1317.52                         In euro Š 1,317.52"<<endl; 
            cout<<"                         Milletrecentodiciasette euro e cinquantadue centesimi";   
            }



          Commenta

          • Sam Fisher
            Bodyweb Advanced
            • Jan 2006
            • 4257
            • 576
            • 583
            • Ministero della Pubblica Istruzione
            • Send PM

            #6
            Originariamente Scritto da Sergio Visualizza Messaggio
            Ecco, copia ed incolla :


            Codice:
            #include <iostream> 
            #include <windows.h> 
            #include <iomanip> //libreria per SETPRECISION 
            using namespace std; 
            bool gotoxy(const WORD x, const WORD y); 
            void index (void); 
            void esegui (void); 
            void SetColor(unsigned short color); 
            int i,N,quot,val,k,sq,bonus; 
            float tot; 
            char c; 
            
            int main() 
            { 
              HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);   
              index(); 
              if (N==0) 
                      esegui(); 
              if (N==1) 
                       { 
                        system("CLS"); 
                        SetColor(14);                     
                        cout<<"Programma che calcola la vincita di una scommessa"<<endl; 
                        SetColor(12); 
                        cout<<"ATTENZIONE:Inserisci le percentuali non scontate e senza virgole!!"<<endl; 
                        c=183; 
                        SetColor(10); 
                        cout<<"NOVIT"<<c<<": Vine calcolato anche il Bonus squadre!"<<endl; 
                        gotoxy(0,5); 
                        SetColor(15); 
                        cout<<"PER ESEMPIO:"; 
                        gotoxy(0,7); 
                        SetColor(7); 
                        cout<<"              |  1  |  X  |  2  |"<<endl; 
                        cout<<"Napoli-Inter  |3.50 |2.20 |2.30 |"<<endl; 
                        gotoxy(0,10); 
                        cout<<"Per mettere la vittoria del Napoli, la percentuale da inserire Š = 350"; 
                        gotoxy(0,12); 
                        SetColor(8); 
                        cout<<"Ovviamente ad ogni inserimento dovete premere 'INVIO'."; 
                        gotoxy(0,14); 
                        cout<<"Premi 'INVIO' per continuare!."; 
                        getchar(); 
                        getchar(); 
                        esegui();                       
                       } 
              getchar(); 
              getchar(); 
               
            } 
            
            bool gotoxy(const WORD x, const WORD y)   
            {   
                COORD posizione;   
                posizione.X = x;   
                posizione.Y = y;   
                return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), posizione);   
            }   
            
            void index (void) 
            { 
              do 
              { 
              if (N>=2) 
              cout<<"\a";         
              system("CLS"); 
              SetColor(11);             
              c=187; 
              gotoxy(79,0); 
              cout<<c; 
              c=201; 
              gotoxy(0,0); 
              cout<<c; 
              c=200; 
              gotoxy(0,24); 
              cout<<c; 
              c=188; 
              gotoxy(79,24); 
              cout<<c; 
              c=205; 
              gotoxy(1,0); 
              for (i=0;i<78;i++) 
                               { 
                                cout<<c;     
                               } 
              gotoxy(1,24);                 
              for (i=0;i<78;i++) 
                               { 
                                cout<<c;     
                               }                   
               c=186; 
               for (i=0;i<23;i++) 
                               { 
                                gotoxy(0,1+i); 
                                cout<<c;             
                               } 
               for (i=0;i<23;i++) 
                               { 
                                gotoxy(79,1+i); 
                                cout<<c;             
                               } 
                SetColor(10);                 
                gotoxy(13,2); 
                cout<<"//////     //////  ////////  ////////   //////   ///////    "; 
                gotoxy(12,3); 
                cout<<"//    //   //         //        //      //       //     //   "; 
                gotoxy(11,4); 
                cout<<"///////    //////     //        //      //////   ///////      "; 
                gotoxy(10,5); 
                cout<<"//    //   //         //        //      //       //    //      "; 
                gotoxy(9,6); 
                cout<<"///////    //////     //        //      //////   //     //      "; 
                gotoxy(9,8); 
                SetColor(2); 
                cout<<"Scommesse sicure!!"; 
                gotoxy(26,14); 
                SetColor(3); 
                cout<<"Inserisci '0' per continuare"; 
                gotoxy(26,15); 
                cout<<"Inserisci '1' per Info";   
                c=205; 
                SetColor(8); 
                for (i=0;i<6;i++) 
                                { 
                                gotoxy(27+i,16); 
                                cout<<c;     
                                } 
                c=187; 
                gotoxy(32,16); 
                cout<<c; 
                c=186; 
                gotoxy(32,17); 
                cout<<c; 
                gotoxy(26,17); 
                cout<<c; 
                c=201; 
                gotoxy(26,16); 
                cout<<c; 
                c=200; 
                gotoxy(26,18); 
                cout<<c; 
                c=188; 
                gotoxy(32,18); 
                cout<<c; 
                c=205; 
                for (i=0;i<5;i++) 
                                { 
                                gotoxy(27+i,18); 
                                cout<<c;           
                                } 
                gotoxy(54,23); 
                c=184; 
                SetColor(15); 
                cout<<c<<" Copyright TotiPianurese";                 
                gotoxy(29,17); 
                SetColor(3); 
                cin>>N; 
              } 
              while(N>=2);                             
            } 
            
            void SetColor(unsigned short color) 
            { 
            HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); 
            SetConsoleTextAttribute(hCon,color); 
            } 
            
            void esegui(void) 
               { 
                       do 
                        { 
                         system("CLS"); 
                         SetColor(11);       
                         cout<<"Inserisci la puntata in euro = "; 
                         cin>>quot;   
                        } 
                        while(quot<0); 
              sq=0; 
              bonus=0; 
              k=2; 
              i=1; 
              tot=1; 
              c=167; 
              while (val!=999) 
                              { 
                               gotoxy(0,k); 
                               k=k+2; 
                               sq++; 
                               if (sq>=5) 
                                        bonus=bonus+5; 
                               SetColor(11);         
                               cout<<"Inserisci la "<<i<<c<<" percentuale = "; 
                               cin>>val; 
                               if (val<=100) 
                                            { 
                                             gotoxy(0,k); 
                                             SetColor(12); 
                                             cout<<"Errore. La percentuale inserita non esiste"<<endl; 
                                             cout<<"Chiudere e riaprire il programma \a"; 
                                             getchar(); 
                                             getchar(); 
                                            } 
                               if (i==1) 
                                       { 
                                        SetColor(14);         
                                        cout<<"Dopo aver inserito tutte le vostre puntate, nell'ultima inserite 999"; 
                                       } 
                               i++; 
                               if (val!=999) 
                                            { 
                                            tot=tot*quot*val/100; 
                                            quot=1;       
                                            } 
                               if (tot<=0) 
                                          { 
                                           gotoxy(0,k); 
                                           SetColor(12); 
                                           cout<<"Errore"<<endl; 
                                           k++; 
                                           if (tot<0) 
                                                     { 
                                                      cout<<"Il vincita Š troppo grande da essere contata!"<<endl; 
                                                      getchar(); 
                                                      getchar();         
                                                     } 
                                           
                                          } 
                                          else 
                                          { 
                                          gotoxy(46,k-2); 
                                          if (val!=999) 
                                                       { 
                                                        SetColor(10);                 
                                                        cout<<"<-- Vincita Š circa "<<setiosflags(ios::fixed)<<setprecision(2)<<tot<<" euro!!";                 
                                                       } 
                                          }                                   
                              } 
              gotoxy(0,k); 
              bonus=bonus+95; 
              tot=tot*bonus/100; 
              SetColor(3);                 
              cout<<"La vincita in totale Š circa "<<setiosflags(ios::fixed)<<setprecision(2)<<tot<<" euro"; //stampa oltre alla parte intera anche le prime due cifre decimali 
              gotoxy(0,k+3); 
              SetColor(2); 
              cout<<"Il risultato finale si conta partendo dopo il punto, da destra"<<endl; 
              cout<<"verso sinistra e mettendo ogni 3 cifre la virgola."<<endl; 
              cout<<"Ad esempio: 1317.52                         In euro Š 1,317.52"<<endl; 
              cout<<"                         Milletrecentodiciasette euro e cinquantadue centesimi";   
              }
            SErgio malefico non è c++ questo ??
            Pillola rossa o pillola blu ????

            La risposta è dentro te.

            Commenta

            • laplace
              Bodyweb Advanced
              • Dec 2005
              • 7982
              • 960
              • 1,370
              • Send PM

              #7
              fai cosi

              #include <stdio.h>
              #include <conio.h>
              int numX = 0;
              int num1 = 0;
              int *p_numX;
              int *p_num1;
              void countStr( char *str );
              int main( void )
              {
              p_numX = &numX;
              p_num1 = &num1;

              char s[50] = "chiesaXXASHDFHWEH111XXX";

              countStr( s );

              printf( "%d\n", numX );
              printf( "%d\n", num1 );

              //getch();

              return 0;
              }
              void countStr( char *str )
              {
              while( *str )
              {
              if ( *str == 'X' ) (*p_numX)++;
              else if( *str == '1' ) (*p_num1)++;

              str++;
              }
              }

              Commenta

              • laplace
                Bodyweb Advanced
                • Dec 2005
                • 7982
                • 960
                • 1,370
                • Send PM

                #8
                il cuore della questione è questo:



                int *p_numX;
                int *p_num1;


                void countStr( char *str )
                {
                while( *str )
                {
                if ( *str == 'X' ) (*p_numX)++;
                else if( *str == '1' ) (*p_num1)++;

                str++;
                }
                }


                dichiari due puntatori esterni (cioè globali) e modifichi quelli tramite la funzione ( o meglio modifichi le variabili a cui puntano)

                non ci sono altri modi....(se volevi usare i puntatori...ma si potevano usare pure direttamente le variabili)
                Last edited by laplace; 05-02-2009, 01:12:57.

                Commenta

                • Sergio
                  Administrator
                  • May 1999
                  • 88049
                  • 2,172
                  • 2,795
                  • United States [US]
                  • Florida
                  • Send PM

                  #9
                  Originariamente Scritto da Sam Fisher Visualizza Messaggio
                  SErgio malefico non è c++ questo ??
                  Si, sto solo scherzando.



                  Commenta

                  • laplace
                    Bodyweb Advanced
                    • Dec 2005
                    • 7982
                    • 960
                    • 1,370
                    • Send PM

                    #10
                    ovviamente potevi anche non usare i puntatori ma incrementare direttamente le variabili globali dichiarate....i puntatori sono indispensabili
                    se vuoi passarli come parametri alla funzione...

                    ma sei sicuro che l'esercizio non chiedesse di contare X e 1 tramite un unico conteggio cumulativo di entrambi?

                    cmq fai cosi :

                    int numX = 0;
                    int num1 = 0;

                    void count( char *str )
                    {
                    while( *str )
                    {
                    if( *str == 'X' ) numx++;
                    else if( *str == '1' ) num1++;

                    str++;
                    }

                    non ha molto senso e come programma fa un po schifo ma è l'esercizio stesso che fa schifo....

                    Commenta

                    • laplace
                      Bodyweb Advanced
                      • Dec 2005
                      • 7982
                      • 960
                      • 1,370
                      • Send PM

                      #11
                      Originariamente Scritto da Sam Fisher Visualizza Messaggio
                      li devi passare entrmbi per indirizzo o al max definisci la funzione cm int e fai passare un parametro per indirizzo e uno cm ritorno della funzione int.


                      Edit come ha scritto Laplace si può fare .Cioè passando solo la stringa di caratteri alla funzione ma per farlo funzionare devi definire i puntatori che contano le x e gli 1 inseriti al di fuori del main e della funzione stessa nella cosidetta area di memoria globale.
                      si ma a questo punto si possono direttamente usare due variabili globali...risparmiando i puntatori

                      ovviamente la funzione non ritorna nulla....e cmq non esistono funzioni che ritornano due valori.

                      secondo me il professore voleva passare la stringa e i due puntatori come argomento.....perchè
                      è in questo caso infatti che si ottiene una funzione abbastanza "generica"...ed è in questo
                      caso che si può grossonalamente dire che la funzione ritorni due valori anche se non è formalmente vero

                      Commenta

                      • laplace
                        Bodyweb Advanced
                        • Dec 2005
                        • 7982
                        • 960
                        • 1,370
                        • Send PM

                        #12
                        alla fine mi sono convinto che il professore volesse questo tipo di soluzione:


                        void countStr( char *str, int *a, int *b )
                        {
                        while( *str )
                        {
                        if ( *str == 'X') (*a)++;
                        else if( *str == '1' ) (*b)++;

                        str++;
                        }
                        }

                        quando la chiami dentro main() è cosi:

                        int main( void )
                        {
                        int numX = 0;
                        int num1 = 0;

                        char s[30] = "adjwurdjXXX1XX11";

                        countStr( s, &numX, &num1 );


                        return 0;
                        }

                        Commenta

                        • Sam Fisher
                          Bodyweb Advanced
                          • Jan 2006
                          • 4257
                          • 576
                          • 583
                          • Ministero della Pubblica Istruzione
                          • Send PM

                          #13
                          Originariamente Scritto da laplace Visualizza Messaggio
                          si ma a questo punto si possono direttamente usare due variabili globali...risparmiando i puntatori

                          ovviamente la funzione non ritorna nulla....e cmq non esistono funzioni che ritornano due valori.

                          secondo me il professore voleva passare la stringa e i due puntatori come argomento.....perchè
                          è in questo caso infatti che si ottiene una funzione abbastanza "generica"...ed è in questo
                          caso che si può grossonalamente dire che la funzione ritorni due valori anche se non è formalmente vero

                          infatti anche il mio prof ha sconsigliato di definire un dato nell'area di memoria globale per strani risultati che si potrebbero avere.
                          La soluzione migliore è quella di passare la stringa e i due contatori per indirizzo.
                          Pillola rossa o pillola blu ????

                          La risposta è dentro te.

                          Commenta

                          • laplace
                            Bodyweb Advanced
                            • Dec 2005
                            • 7982
                            • 960
                            • 1,370
                            • Send PM

                            #14
                            anche perchè poi la funzione non diventa "portabile" e di uso generico...na schifezza insomma

                            Commenta

                            • john89
                              Inattivo
                              • Jan 2008
                              • 434
                              • 133
                              • 61
                              • Send PM

                              #15
                              ho chiesto alla prof per email, e intendeva un conteggio cumulativo di quante volte apparivano le x e gli 1... grazie mille

                              Commenta

                              Working...
                              X