Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [C] Ciclo for

  1. #1

    [C] Ciclo for

    Salve a tutti,

    premetto che sono assolutamente alle prime armi con il linguaggio C, quindi cercate di essere buoni! XD

    Avrei un problema riguardante il ciclo il for.

    for (n=0, param=1; n<10; n++, param++)
    printf(" %i %i %1.3lf\n\n", n, n*n, result = log(param));

    Questo ciclo for stampa a schermo 30 numeri, ok? n, n*n, result = log(param). Ciò che ora mi serve é fare due somme: quella dei 10 risultati di n*n e quella dei 10 risultati di result = log(param). Come diavolo faccio?

    CODICE PER INTERO

    codice:
    #include <stdio.h>
    #include <math.h>
    
    
    int main(void)
    {
        double param, result;
        int n;
        result = log (param);
        
        printf("RICERCA OPERATIVA - CAPITOLO 2\n\n\n  N      N*N      log(N)\n===========================\n\n");
        
        for (n=0, param=1; n<10; n++, param++)
            printf("  %i       %i       %1.3lf\n\n", n, n*n, result = log(param));
            
    
        
    	system("PAUSE");
    	return (1);
    }






    Grazie mille a tutti!

    Saluti.

  2. #2
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    bhè per fare le somme a quanto ho capito io...basta che t dichiari 2 variabili, per quanto riguarda le somme di n*n va bene anche intera, invece per il result poichè sarà quasi sempre con la virgola la dichiari float; per il resto nel ciclo ogni volta che fai n*n lo aggiungi a questa variabile e lo stesso per l'operazione di result.
    Spero di essermi spiegato un minimo...
    Prova a scrivere un pò d codice...se non ti viene niente in mente, posta qua ancora il problema!
    ciao
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466

    Re: [C] Ciclo for

    Originariamente inviato da PipinoPiranha™
    mi serve é fare due somme: quella dei 10 risultati di n*n e quella dei 10 risultati di result = log(param). Come diavolo faccio?
    Con un pò di logica, dichiari 2 variabili come ha detto mrx87
    codice:
    int sum1, sum2;
    ...
    for (n=0, param=1; n<10; n++, param++)
    {
       ...
       sum1 += (n * n);
       sum2 += result; /* result a sua volta è uguale a log(param) */
    }

  4. #4

    Re: Re: [C] Ciclo for

    Originariamente inviato da simo_85
    Con un pò di logica, dichiari 2 variabili come ha detto mrx87
    codice:
    int sum1, sum2;
    ...
    for (n=0, param=1; n<10; n++, param++)
    {
       ...
       sum1 += (n * n);
       sum2 += result; /* result a sua volta è uguale a log(param) */
    }
    Ho fatto come hai detto tu, ma purtroppo mi da una somma che non é quella esatta. I numeri che vengono prodotti da n*n sono questi:

    0, 1, 4, 9, 16, 25, 36, 49, 64, 81
    TOTALE: 285

    sum1 però vale 469... :S

    Comunque grazie ad entrambi per l'aiuto che mi date!

  5. #5
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    In caso tu non l'abbia fatto: sum1 e sum2 sarebbe buona norma inizializzarle a 0 prima del ciclo for .

    Puoi postare il codice completo ?

  6. #6
    Originariamente inviato da Mashin
    In caso tu non l'abbia fatto: sum1 e sum2 sarebbe buona norma inizializzarle a 0 prima del ciclo for .

    Puoi postare il codice completo ?
    Ecco dov'era l'intoppo! Grazie mille, ora é ok!

    Grazie mille a tutti!

  7. #7
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    Di nulla

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466

    Re: Re: Re: [C] Ciclo for

    Originariamente inviato da PipinoPiranha™
    0, 1, 4, 9, 16, 25, 36, 49, 64, 81
    TOTALE: 285
    sum1 però vale 469... :S

    codice:
    int main(void)
    {
    	int n;
    	double param, result, sum1, sum2;
        
    	printf("RICERCA OPERATIVA\n");
        
    	for (n = 0, param = 1; n < 10; n++, param++)
    	{
        	   result = log(param);
    	   sum1 += (n * n);
       	   sum2 += result;
    	}
    	printf("%.0f - %.2f\n", sum1, sum2);
    	return 0;
    }
    Output:
    codice:
    RICERCA OPERATIVA
    285 - 15.10
    Avrai fatto dei calcoli sbagliati?
    Di niente

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.