PDA

Visualizza la versione completa : [C] risultati inaspettati


jackdispade
15-11-2010, 13:00
Non riesco a capire dove sta l' errore :dh:

Dal punto di vista sintattico e pure logico mi sembra tutto corretto.

IL problema chiedeva:

Del primo periodo:
la media della pioggia caduta
il valore minore registrato
il valore massimo registrato

del secondo periodo:
giorni di pioggia scarsa (minori dell'80% della media del primo periodo)
giorni di pioggia abbondante (maggiori al 120% della media del primo periodo)
giorni di pioggia nella norma (fra l'80% ed il 120% della media del primo periodo)
quanti giorni di pioggia inferiori al minimo (del primo periodo) ci sono stati?
quanti giorni di pioggia superiore al massimo (del primo periodo) ci sono stati?
In quale giorno stato registrato il minimo (del secondo periodo)
In quale giorno stato registrato il massimo (del secondo periodo)



# include <stdio.h>
# include <time.h>
#include <stdlib.h>
#define p 7 //si presuppone che il periodo sia una settimana//


int main ()


{
int mm, max,min,i;
int i2,cmin,cmax,max2;
int min2,cont1,cont2,mm2,contnorm,contscar,contabb;
float media,scarsa,norma;


srand(time(NULL));

media= 0;
max = 0;
min= 200; // si stabilito che il livello massimo di precipitazioni 200//


for (i=0; i<p; i++)

{
mm = rand() %200 ;

if (mm>=max)
{
max=mm;
}

else

{
(min=mm);
}

media = (media + mm)/2;




}

printf("la temperatura minima : %d e la massima: %d \n la media registrata stata di: %.3f",min, max,media);

max2=0;
min2= 200;
cmin=0;
cmax=0;
contabb=0;
contnorm=0;
contscar=0;



scarsa= (media *0.8);
norma= (media * 1.2);


for (i2=0; i2<p; i2++)
{

mm2 = rand()%200;


if (mm2>max2)
{
mm2=max2;
cont1=i2;
}
else

if (mm2<min2)
{
mm2=min2;
cont2=i2;
}




if (mm2>max) {cmax++;} //conta quante volte stato superato il massimo delle prime rilevazioni

else

if (mm2<min) {cmin++;} //conta quante volte stato superato il minimo delle prime rilevazioni


if (mm2< scarsa) {contscar++;}

else

if ((mm2>=scarsa) && (mm2<=norma))
{
contnorm++;
}

else

{
contabb++;
}
}


printf("\n i giorni di pioggia scarsa sono stati: %d",contscar);
printf("\n i giorni di pioggia normale sono stati: %d", contnorm);
printf("\n i giorni di pioggi abbondante sono stati: %d",contabb);
printf("\nla minima del secondo peridio stata registrata il %d giorno",cont2);
printf("\nla massima del secondo periodo stata registrata il %d giorno",cont1);
printf("\nil massimo delle prime rilevazioni stato superato %d volte e il minimo stato superato %d volte",cmax,cmin);




return 0;
}

MdE2005
15-11-2010, 13:10
Titolo non pertinente :nonono:

Qual' il problema riscontrato? Cos evitiamo di analizzare riga per riga tutto il codice..


Ciao :)

jackdispade
15-11-2010, 14:14
Originariamente inviato da MdE2005
Titolo non pertinente :nonono:

Qual' il problema riscontrato? Cos evitiamo di analizzare riga per riga tutto il codice..


Ciao :)

Scusami per il titolo ;)

Il problema che a partire dal secondo ciclo for mi da risultati assurdi.
Ad esemprio su giorni di pioggia abbondante mi segna sempre 0 e su quanti giorni di pioggia superiori al massimo del primo periodo segna cifre come 400000.

jackdispade
15-11-2010, 16:00
niente? O_O

Sar scemo ma io non ci arrivo :d56:

Loading