Vai al contenuto

Banale (speriamo) errore programmazione in C (Xcode)


Messaggi raccomandati

Ciao

ho appena iniziato a programmare in C, ho un MB Pro (SL) e utilizzo Xcode.

Sono alle prime armi, ma non sono ancora incappato in errori fatali (sgrat sgrat), ho però un piccolo stupido problema che non riesco a risolvere.

Tutte le volte che scrivo il mio programma, una volta corretto lo lancio col terminale ma quando il programma mi chiede di inserire un input da tastiera (nel mio caso un numero) devo SEMPRE inserirlo due volte prima che il programma lo rilevi..

Ad esempio

[session started at 2010-05-29 19:07:11 +0200.]
[u][i][color=DarkRed][b]Inserisci il primo voto: 
23

23[/b][/color][/i][/u]
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
Inserisci il primo voto: 
23
La media voto della classe è pari a 23

Questo è un piccolo programmino per calcolare la media voto di una classe di 10 alunni..come potete notare, appena inserisco il primo voto e premo invio, devo reinserirlo se voglio che lo legga !!

L'algoritmo poi è corretto perchè il programma fila liscio..

PS: mi capita qui come negli altri programmi..che errore commetto ??

Ringrazio per le risposte.

A presto.

Claudio

PPS: ecco il codice


#include<stdio.h>

[color=Red]int[/color] main () 
{

[color=Red]int[/color] voto, media, totale, contatore;



totale = 0 ; 
contatore = 1; 



 [color=Red]  while[/color] ( contatore <= 10 ) {
   printf (" Inserisci il primo voto: \n");
   scanf(" %d ", &voto);

   totale = voto + totale ;
   contatore = contatore +1;
   }

   media = totale / 10 ;
   printf("La media voto della classe è pari a %d\n",media);

   return '0';
}

Link al commento
Condividi su altri siti

#include<stdio.h>
int voto, media, totale, contatore;
int main () 
{




   do {
   printf (" Inserisci il primo voto: \n");
   scanf(" %d ", &voto);

   totale = totale+voto ;
   contatore++
   }while ( contatore <= 10 )

   media = totale / contatore ;
   printf("La media voto della classe è pari a %d\n",media);

   return 0;
}

prova così

Link al commento
Condividi su altri siti

Ciao

ti ringrazio per la tempestività, ma come sempre mi capita, una volta che chiedo aiuto subito dopo trovo la soluzione !! :ghghgh:

L'errore è qui scanf(" %d ", &voto);

Lo spazio vuoto prima di %d fa si che il primo input venga ignorato :ciao:

Si può chiudere.

Grazie lo stesso Steve :(

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...