Newsgroup: it.comp.lang.c++
Titolo: la somma dei primi # naturali

Salve, sto' imparando il C ed ho iniziato a muovere i primi passi, grazie
anche al MITICO    libro di Kernighan & Ritchie"Linguaggio C ANSI C", sto'
lavorando su un programma di somma dei primi # naturali qui di seguito
riporto il mio codice chi puo' dirmi dove sbaglio:
#include <stdio.h>
main()
"ci deve stare una parentesi graffa aperta solo che non mi funzionano i
codici ASCII in questa finestra" p.s. Perche'?
            int n,somma;
            printf("inserire il massimo naturale\n");
            n=getchar();
            while (somma<=n)
                        GRAFFA
                        somma=0;
                        ++somma;
                        printf("la somma
è:%d\n",n=getchar(),putchar(somma));
                        GRAFFA chiusa
GRAFFA chiusa
Inoltre volevo sapere quale è il codice ASCII per l'OR logico le due
stangette parallele, ho preso un vechio manuale di DOS5 dove c'è un simbolo
del genere il # 179 ,ma il compilatore (un edizione DOS del '990 C 1.0
,credo) mi segnala illegal character.
  Grazie mille          Gabriele.

 riporto il mio codice chi puo' dirmi dove sbaglio:
Mi devi scusare ma ti consiglio di studiare meglio il K&R. E' tutto
sbagliato.
EMG


inoltre, non uscirà mai dalla while perchè somma non sarà mai <= n (tranne
se  n=1)
Questa è la prima cosa che mi è venuta in mente... ^^;;
(non l'ho nemmeno provata... quindi se non funziona scusa ^^;;)
#include <stdio.h>
#include <conio.h>
void main (){
int n, somma, N;
somma=0;
printf("Inserisci il numero massimo ==> ");
scanf("%d",&n);
N=n;
    while(n!=0){
        somma=somma+n;
        n--;
    }
printf("La somma dei primi %d numeri interi è %d",N, somma);
getch();
}

apparte il fatto che volevo far notare a Gianluca di essere OT
 ( it.comp.lang.c ), se vuoi essere più fine sostituisci il "while" con un "for"
per esercizio , così impari qualcosa  :-))


 per esercizio , così impari qualcosa  :-))
Sai, il problema è che la for non mi piace.... ^___-
Neanche a scuola, la prof. ci diceva sempre di usare la For ed io invece
cercavo in tutti i modi
di usare la while... ^__^;;;
Cmq, non c'è differenza giusto ??

di usare la while... ^__^;;;
Allora mi sa che la tua professoressa ci capiva poco d'informatica. Non te
la prendere,ma la scelta fra il for e lo while non é affatto di
preferenza,ma bensi é dettata dalle esigenze.Solitamente il for si usa per i
cicli incondizionati(e cioé quando si sa che il ciclo deve arrivare a
termine),mentre lo while si usa quando una o più condizioni potrebbero
bloccare il ciclo.Quindi in un programma,a seconda di cosa si deve fare,si
può utilizzare entrambi.E chi dice:-"Usa questo,non usare
quest'altro!"-dimostra di essere poco competente in materia.Vabbé,del resto
anche il mio professore d'informatica era un incompetente totale.
Il Ghenio

Forse mi sono spiegato male.... la prof. mi diceva di usare la for >quando
andava usata, non di usarla al posto della while.... sono io >che non voglio
usare la for..... NON MI PIACE.... ^^;;;
Ah!Allora era la prof che aveva ragione.In effetti non capisco il perché del
tuo integralismo anti 'for'.Se usato per un ciclo incondizionato lo
'while'ti fa anche aumentare il numero delle righe( visto che devi settare
un contatore e poi incrementarlo),non capisco perché ostinarsi ad usarlo
anche quando é superfluo.Ciò non vuol dire che sia sbagliato utilizzarlo al
posto del 'for'.Il risultato é comunque identico.
Il Ghenio


No, non sei malato! Devi solo capire che le scelte intuitive non sono sempre le
piů indicate o le piů utili per risolvere un problema. Questo in generale.
Ciao
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Baruzzo
Via Circonvallazione, 26
Muzzana del Turgnano (UD) - Italy
e-mail: 
andrea....@ud.nettuno.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Scusatemi, non ho seguito bene il thread, ma stando al subject.....
.... non si sta meno a fare:
somma= ( n*(n+1) )/2
???

,credo) mi segnala illegal character.
Nessun codice ASCII. C'è il tasto relativo. Nella tastiera italiana si trova
sopra il backslash "\".
Se ne volessi sapere il codice ASCII
#include <stdio.h>
int main()
{
    int ch;
    ch = getchar();
    printf("Codice ASCII: %c\n",ch);
    return 0;
}
Eseguilo premendo il tasto di cui sopra :-)
--
Francesco Trotta
http://space.tin.it/computer/ftrotta
Elimina "x_" dal mio indirizzo per mandarmi
un messaggio direttamente


 
Ooops, anche tu hai commesso un piccolo errore :
Quando, dopo il ciclo, stampi il numero e 
la somma, n e' uguale a zero  ;-)
*Fabio*
-- 
If a man has a strong faith he can indulge in the luxury of skepticism.
		-- Friedrich Nietzsche

la somma, n e' uguale a zero  ;-)
Cerco sempre di risparmiare le variabili, ma questa volta...
Allora facciamo cosě
#include <stdio.h>
int main()
{
     int n, somma=0;
     printf("Inserisci n max: ");
     scanf("%d",n);
     if(n<0) return -1;
     printf("La somma dei primi %d naturali č: ",n);
     while(n) {
         somma += n;
         n--;
     }
     printf("%d\n",somma);
     return 0;


Scusate ma la somma dei primi N numeri non è N*(N+1)/2 ???
Ciao
Paolo