Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    Originariamente inviato da oregon
    Quasi ... non azzeri somma ogni volta che inizi una nuova somma ...
    allora dovrebbe essere così

    codice:
    void sequenzamassima(int A[MAX], int n)
    {
         int i, j, k, somma, sommamax;
         printf("Per quanti numeri vuoi effettuare le somme?");
         scanf("%d", &k);
         if(k>n){
                 printf("Inserisci un valore minore del numero degli elementi dell'array: ");
                 scanf("%d", &n);
                 }
         else{
              for(i=0; i<n-k+1; i++){
                for(j=0; j<k; j++){
                         somma = 0;
                         somma = somma + A[i+j];
                         }
                     }
              }
         if(somma > sommamax){
                  somma = sommamax;
                  }
         return;
    }

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perdonami, ma scrivi a caso?

    Se all'interno di un ciclo azzeri e accumuli, le varie somme parziali verranno perse.

    Un po' di attenzione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    No scusami non ho capito.
    Somma deve giustamente essere azzerato prima di ogni nuova somma quindi deve essere azzerata all'interno del ciclo prima che si effettui la somma. Dove sbaglio nel ragionamento?

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    All'interno del *primo* ciclo, prima che inizi il secondo dove fai la somma.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    Ah giusto...ci avevo pensato ma ho ritenuto fosse sbagliato.
    Ma ora come faccio a stampare la sequenza massima? Il controllo è sbagliato o si deve solo migliorare?

  6. #16
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    - sommamax va azzerato

    - il controllo con la if va inserito alla fine del secondo ciclo

    codice:
    Azzera sommamax
    Primo ciclo
    {
       Azzera somma
       Secondo ciclo
       {
          Somma prossimo elemento
       }
       
       Controllo somma e sommamax
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #17
    Originariamente inviato da oregon
    - sommamax va azzerato

    - il controllo con la if va inserito alla fine del secondo ciclo

    codice:
    Azzera sommamax
    Primo ciclo
    {
       Azzera somma
       Secondo ciclo
       {
          Somma prossimo elemento
       }
       
       Controllo somma e sommamax
    }
    Quindi, se non ho ancora sbagliato qualcosa, dovrebbe venire così:
    codice:
    void sequenzamassima(int A[MAX], int n)
    {
         int i, j, k, somma, sommamax;
         printf("Per quanti numeri vuoi effettuare le somme?");
         scanf("%d", &k);
         if(k>n){
                 printf("Inserisci un valore minore del numero degli elementi dell'array: ");
                 scanf("%d", &n);
                 }
         else{
              sommamax = 0;
              for(i=0; i<n-k+1; i++){
              somma = 0;
                for(j=0; j<k; j++){
                         somma = somma + A[i+j];
                         }
                if(somma > sommamax){
                  somma = sommamax;
                  }
                }
              }
         return;
    }

  8. #18
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti pare giusto

    somma = sommamax;

    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #19
    Originariamente inviato da oregon
    Ti pare giusto

    somma = sommamax;

    ?
    Se somma è maggiore di sommamax, cioè il massimo in quel momento, assegna somma a sommamax...non va bene?

  10. #20
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Assegna somma a sommamax?

    Dovresti rivedere le basi del linguaggio C ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.