C progr.

Tags:    c++

Nogle der kan se af hvor jeg laver fejl?

Når jeg printer ud, så får jeg:"253531009815049120000000000000000.000000" som gennemsnits temperatur for jan2009, hvilket er helt henne i vejret, for det skal give -2,06.

takker på forhånd.

Tekstfilerne som programmet skal læse fra, kan downoades i nedstående links:

TempJan2008.txt http://peecee.dk/upload/view/159973

TempJan2009.txt http://peecee.dk/upload/view/159974

#include <stdio.h>
#include <stdlib.h>


float gsnit(float a[], int antal)
{
int i;float sum=0;
for(i=0; i < antal; i++)
{
sum+=a;
}
return sum/antal;

}

int main(void)
{
float temp08[31],temp09[31];
FILE *fpt;
FILE *fpq;
int i, n;
float snit08,snit09;

fpt = fopen("TempJan2008.txt","r");

for(n = 0; n < 31; n++){ fscanf(fpt,"%f",&temp08[n]); }
fclose(fpt);

snit08 = gsnit(temp08,31);
printf("Gennemsnitstemperaturen for januar 2008 er %f\n",snit08);

fpt = fopen("TempJan2009.txt","r");

for(i=0; i < 31; i++){ fscanf(fpt,"%f",&temp09);}
fclose(fpt);

snit09 = gsnit(temp09,31);
printf("Gennemsnitstemperaturen for januar 2009 er %f\n",snit09);

return 0;
}




Jeg ved ikke om det er udvikleren.dk der har fjernet [ i ] i denne linje:


for(i=0; i < 31; i++){ fscanf(fpt,"%f",&temp09[ i ]);}

Der skal være [ i ] efter temp09



Det må være udvikleren der har fjernet , for den er i min del.
Er det muligt at køre koderne i din egen kompiler og se om det kosker der også?




prøv med:
return sum/(float)antal;




Put koden i kodebokse for at undgå at sitet kører sin markupfortolker på koden :)

Mvh.

Kasper (TSW)



Denne kode:
Fold kodeboks ind/udKode 


Skriver:
Gennemsnitstemperaturen for januar 2008 er 4.516129
Gennemsnitstemperaturen for januar 2009 er -2.096774



hvordan i kodebokse?



Lige over den boks hvori du skriver dit indlæg er er en række knapper, den første er med et B for Bold, når du trykker på den kommer der til at stå [ b ] [ / b ] i teksten (uden mellemrummene), det du skriver mellem ][ i midten bliver så skrevet med fed/bold, når du poster.

Nummer to fra højre er en kode box, når du trykker på den kommer der til at stå: [ code ][ /code ] (igen uden mellemrummene).
Det kan du bruge til at få din kode til at se sådan ud, og til at undgå at udviklerne laver din kode om:
Fold kodeboks ind/udKode 




okay jeg prøver her, og takker.
og min kode ser sådan ud nu: får stadig det nedstående som output, hvordan kan du få -2.096774 :S

Gennemsnitstemperaturen for januar 2008 er 4.52

Gennemsnitstemperaturen
Fold kodeboks ind/udKode 
for januar 2009 er 253531009815049120000000000000000.00

kode:


Fold kodeboks ind/udKode 




Bertels kode og dine egen virker fint, begge er dog forkerte for du har kun 29 tal i din data fil.

Her er mit eget forslag, som også virker og ikke lader, og til alle måneder uanset antallet af dage for den tæller dem.
Fold kodeboks ind/udKode 


Det er muligvis det der er din fejl iøvrigt når du prøver at læse float 30 og 31 i din kode, er der jo ikke nogen float. så er der vel to muligheder at den giver en eller anden tilfældig værdi eller ingen, eller at den ikke give nogen værdi men lader float behold den værdi den har til at begynde med.



Indlæg senest redigeret d. 15.03.2009 15:54 af Bruger #5620
Nu skal jeg være ærlig, det er mit første projekt i C, har ik forstand på særlig meget.
Jeg kan stadig ikke få koden til at køre.
men et spørgsmål bl.a. dukker op er: hvad står fpt for?



t