sinnadyr Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 Har funnet ut middelverdien av tabellen fra kolonne 5 og med alle rekkene nedover. Det jeg nå sliter med er å trekke ut minimumsverdien i kolonne 5. Noen forslag? Sliter litt med å forstå hvordan jeg skal bruke "for"-sløyfene... #include<iostream.h> #include<conio.h> int main () { const int dager=31; double temp [dager][8] = {2.4 , 8.2 , 12.6 , 10.4 , 8.3 , 2.2 , 13.4 , 8.1, 9.5 , 7.0 , 6.6 , 6.2 , 10.7 , 7.0 , 7.5 , 6.0, 5.0 , 4.3 , 7.7 , 7.0 , 6.2 , 4.2 , 8.1 , 4.1, 5.4 , 6.6 , 9.7 , 9.7 , 7.4 , 4.8 , 10.3 , 4.8, 8.4 , 8.1 , 8.0 , 6.7 , 9.9 , 7.2 , 10.2 , 6.6, 5.1 , 7.2 , 7.7 , 3.8 , 7.3 , 4.0 , 9.0 , 3.8, 4.0 , 5.5 , 6.6 , 6.3 , 5.5 , 3.3 , 7.4 , 5.5, 3.1 , 3.3 , 5.2 , 5.7 , 6.3 , 1.8 , 6.9 , 3.9, 2.6 , 3.1 , 7.4 , 5.4 , 5.8 , 1.1 , 7.7 , 3.0, 3.0 , 3.7 , 6.1 , 2.9 , 5.5 , 1.6 , 7.6 , 2.7, 2.4 , 3.4 , 4.9 , 6.4 , 3.4 , 1.8 , 6.9 , 2.7, 2.5 , 3.9 , 11.0 , 8.6 , 6.4 , 0.9 , 11.8 , 3.9, 6.7 , 5.6 , 9.8 , 9.3 , 8.7 , 4.9 , 10.6 , 5.6, 4.0 , 7.1 , 18.5 , 19.3 , 9.5 , 3.8 , 20.4 , 7.1, 17.3 , 18.3 , 21.2 , 12.9 , 19.3 , 14.7 , 22.8 , 12.5, 9.3 , 7.8 , 6.9 , 8.1 , 13.6 , 7.7 , 9.2 , 6.7, 6.6 , 6.5 , 9.2 , 8.9 , 8.4 , 6.0 , 9.6 , 6.5, 7.5 , 8.3 , 12.1 , 13.3 , 9.1 , 7.4 , 14.4 , 8.0, 7.7 , 8.5 , 18.7 , 16.5 , 13.5 , 5.9 , 20.3 , 8.5, 10.5 , 11.9 , 16.2 , 15.1 , 17.4 , 9.9 , 19.5 , 11.9, 10.9 , 11.3 , 16.1 , 16.6 , 15.5 , 9.2 , 18.7 , 11.3, 11.0 , 15.6 , 23.3 , 19.6 , 17.2 , 9.3 , 23.5 , 15.5, 16.5 , 13.5 , 11.5 , 13.6 , 19.6 , 13.4 , 14.6 , 11.0, 8.9 , 9.0 , 13.9 , 20.1 , 13.6 , 6.8 , 20.2 , 8.7, 11.5 , 10.8 , 17.8 , 22.3 , 20.1 , 8.9 , 23.2 , 10.8, 12.6 , 12.7 , 20.5 , 19.8 , 22.4 , 10.7 , 22.5 , 12.7, 11.2 , 11.3 , 18.6 , 20.4 , 20.0 , 8.4 , 20.8 , 11.2, 11.2 , 12.0 , 19.5 , 21.7 , 20.8 , 8.8 , 22.8 , 12.0, 15.0 , 15.3 , 21.8 , 21.3 , 22.1 , 13.1 , 23.3 , 15.3, 14.5 , 14.0 , 20.0 , 23.1 , 21.5 , 12.1 , 24.9 , 14.1, 13.9 , 13.8 , 21.1 , 21.5 , 23.1 , 11.2 , 23.0 , 13.8}; //nedenfor summerer vi opp tabellen til kolonne 4 til "sum" og finner deretter middelverdien double sum=0.0; int K, I, R, r; for(K=0; K<31; K++) { for(I=0; I<4; I++) { sum=sum+temp[K][I]; } } cout << sum/(31*4); // her blir det korrekte svaret 10.8911 [b] //nedenfor leter vi etter minimumsverdien i kolonne 5 double min; for(K=0; K<31; K++) { for (I=5) // "For statement missing;" { if (temp[K][I] < min) { // if-setningen var noe jeg så på et forum, min=temp[K][I]; // men får ikke den til å fungere. } } } cout << "\n\n Minimumsverdi = " << min;[/b] cout << "\n\ntrykk en tast"; getch(); return 0; } Altså er det denne delen jeg sliter med: //nedenfor leter vi etter minimumsverdien i kolonne 5 double min; for(K=0; K<31; K++) { for (I=5) // "For statement missing;" { if (temp[K][I] < min) { // if-setningen var noe jeg så på et forum, min=temp[K][I]; // men får ikke den til å fungere. } } } cout << "\n\n Minimumsverdi = " << min;[/b] Takker for alle svar! Lenke til kommentar
Dinosauromann Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 (endret) Du mangler litt inni for-statementet. Blir vel noe sånt: for(I=5; I<8; I++) EDIT: Du bør forresten bruke #include <iostream> og ikke #include <iostream.h> Den siste er utdatert og vil ikke nødvendigvis fungere i alle kompillatorer. Endret 12. oktober 2009 av oln Lenke til kommentar
OldMan Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 Du må gi min variablen en startverdi. double min = 1000; Lenke til kommentar
sinnadyr Skrevet 12. oktober 2009 Forfatter Del Skrevet 12. oktober 2009 for(I=5; I<8; I++) Skal kun bruke I=5 skjønner du, ikke helt opp til 8, derfor jeg ikke skjønner helt hvordan jeg skal skrive den for-setningen. med iostream må man vel legge til "using namespace::std" eller lignende for å gjøre det litt greiere for seg selv? Lenke til kommentar
Dinosauromann Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 (endret) Tolket deg tydeligvis feil. Men iallefall, du trenger bare en løkke for å gå igjennom en kolonne. double min =temp[5][0]; for (I=1; i < dager; i++) // "For statement missing;" { if (temp[5][I] < min) { // if-setningen var noe jeg så på et forum, min=temp[5][I]; // men får ikke den til å fungere. } } (Eller mente du rad?, i så fall bytt om I og 5) Og ja, du kan bruke using namespace std hvis du vil gjøre det lettere for deg selv. EDIT: Mente du double temp [8][dager] kanskje Endret 12. oktober 2009 av oln Lenke til kommentar
sinnadyr Skrevet 12. oktober 2009 Forfatter Del Skrevet 12. oktober 2009 altså... tar jeg feil når jeg sier at det er her 8 kolonner og 31 rader? For ja, den skal bla gjennom alle 31 radene på kolonne 5. Stemmer da den for-setninga du gav meg? Unasett takk for alle svarene, utrolig hjelpsomt! Lenke til kommentar
GeirGrusom Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 Da er den løkka temmelig unødvendig ^^ Lenke til kommentar
sinnadyr Skrevet 12. oktober 2009 Forfatter Del Skrevet 12. oktober 2009 (endret) Geir, hva skal man da gjøre? Fikk heldigvis litt hjelp på pm: double minNattTemp = temp[0][0]; for(int dag=0; dag < dager; dag++) { if(temp[dag][5] < minNattTemp) { minNattTemp = temp[dag][5]; } } cout << "\n\nTrykk for a fa fram minimumstemp om natten"; getch(); cout << "\n\nMinimumsverdi om natten: " << minNattTemp << '\n'; Takker så meget for det! Funket flott. Verste er at jeg forstår det også, men læreren bruker en del gamlere metoder. F.eks det å definere en int inne i en for-setning er noe som aldri ville forekommet her i salen Jeg var ikke langt unna i forslaget mitt da, men er meget spent på hva GeirGrusom mener om dette siden for-løkken skulle være unødvendig Takker for alle svar Endret 13. oktober 2009 av sinnadyr Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå