Gå til innhold

[Løst]Finne minimumsverdi av en array


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 av oln
Lenke til kommentar

Geir, hva skal man da gjøre? :p

 

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 av sinnadyr
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...