PDA

View Full Version : [C] su 10 numeri, contare i positivi i negativi e i nulli


*=Jak=*
17-03-2008, 17:26
rieccomi, stavolta ho controllato meglio :D

"scrivere un programma che legga 10 numeri interi inseriti dall'utente e stampi a schermo quanti di questi numeri sono positivi, quanti sono negativi e quanti nulli".

io ho fatto cosi:

#include <stdio.h>
#include <conio.h>

int main()
{
int numero,contatore=0,positivi=0,negativi=0,nulli=0;
while(contatore<10){
printf("inserisci un numero: ");
scanf("%d",&numero);
if(numero>0)
positivi++;
else if(numero==0)
nulli++;
else if (numero<0)
negativi++;
contatore++;
}
printf("hai scritto %d numeri positivi, %d numeri negativi e %d numeri nulli\n",positivi,negativi,nulli);
system("PAUSE");
return 0;
}

e funziona alla grande.

ma visto che non ho mai usato lo switch, ho voluto provare anche con quello (sebbene in questo caso sia pressoche inutile):

#include <stdio.h>
#include <conio.h>

int main()
{
int numero,contatore=0,positivi=0,negativi=0,nulli=0;
while(contatore<10){
printf("inserisci un numero: ");
scanf("%d",&numero);
switch(numero){
case 0
nulli++;
default {
if(numero<0)
negativi++;
else if(numero>0)
positivi++;
}
contatore++;
}
system("PAUSE");
return 0;
}

ma non vuole saperne di andare. il compilatore mi da un "parse error before nulli" alla linea linea 12, solo che non so che vuol dire :muro:

dove sta l'errore?

xsatellitex
17-03-2008, 17:32
#include <stdio.h>
#include <conio.h>

int main()
{
int numero,contatore=0,positivi=0,negativi=0,nulli=0;
while(contatore<10){
printf("inserisci un numero: ");
scanf("%d",&numero);
switch(numero){
case 0:
nulli++;

default: {
if(numero<0)
negativi++;
else if(numero>0)
positivi++;
}
contatore++;
}
system("PAUSE");
return 0;
}}

cosi è corretto.
hai dimenticato i : dopo case 0 e default e poi l'ultima parentesi
ciao ;)

*=Jak=*
17-03-2008, 17:39
giusto... i due punti, proprio non me li ricordavo... :muro:

grazie :)

xsatellitex
17-03-2008, 17:53
ops scusa l'ultima parentesi andava subito prima di return 0 e non alla fine come l ho messa io.
byebye