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

    [C] somma di un intervallo di numeri

    Ciao a tutti volevo un aiutino per problema che ho..
    In C volevo sommare i numeri da 0 a 99.. nel senso..
    0+1=1, 1+2=3 e cosi via fino al 99
    chi sa dirmi come posso fare???

    grazie mille spero di essere stato abbastanza chiaro

  2. #2
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    codice:
     
    int i;
     int risultato =0; 
    for(i=0; i<=99; i++)
       risultato += i;

  3. #3
    Ho provato a fare un cosa del genere, ma non mi è uscito niente di soddisfaciente :S
    codice:
     
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        int i;
        int risultato =0; 
        for(i=0; i<=99; i++)
        risultato += i;
        printf("Risultato %d",i)
        getch();
        return 0;
    }
    A me picerebbe che nella console venisse fuori il risultato..
    Uso DEV C++...

  4. #4
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Come secondo parametro della printf devi passare risultato e non i . . .

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    A me picerebbe che nella console venisse fuori il risultato..
    ... e tu hai scritto

    printf("Risultato %d",i)

    Cosa mostra questa riga, secondo te?

    La variabile i o la variabile risultato ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    codice:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        int i;
        int risultato=0; 
        for(i=0; i<=99; i++);
        risultato += i;
        printf("Risultato %d",risultato);
        getch();
        return 0;
    }
    così mi da 100 come risultato.. e non è giusto.. c'è ancora qualcosa che non va??
    abbiate pazienza
    dovrebbe essere un calcolo così:
    0+1+2+3+4+5+6+7+8+9+10+11 ecc.. fino al 99 e non da cento

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Togli il punto e virgola dopo il for... altrimenti fai un ciclo a vuoto...

    codice:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        int i;
        int risultato=0; 
        for(i=0; i<=99; i++) /* qui togli il punto e virgola esterno */
        risultato += i;
        printf("Risultato %d",risultato);
        getch();
        return 0;
    }
    Comunque esiste anche una formula chiusa per calcolare la somma dei numeri da 0 a N, così eviti il ciclo.
    every day above ground is a good one

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da YuYevon
    Togli il punto e virgola dopo il for...
    Punto e virgola che non avevi inserito nel codice del primo post ... quindi l'hai aggiunto dopo ... fai attenzione quando scrivi del codice, devi essere molto preciso ed attento ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da YuYevon
    Togli il punto e virgola dopo il for...
    E indenta di conseguenza, che se no non si capisce.
    codice:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        int i;
        int risultato=0; 
        for(i=0; i<=99; i++) /* qui togli il punto e virgola esterno */
            risultato += i;
        printf("Risultato %d",risultato);
        getch();
        return 0;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    • Per evitare per sempre il problema del "punto e virgola" metti sempre un blocco di parentesi graffe anche se non strettamente necessario:
      Codice PHP:
      for(i=0i<=99i++){
              
      risultato += i;

    • Come ti è già stato suggerito, l'algoritmo che utilizzi per calcolare la somma dei primi N numeri è altamente inefficiente.. c'è un formuletta con cui puoi calcolartela al volo.
      Suggerimento:
      codice:
      99 + 1 = 98 + 2 = 97 + 3 ecc...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.