---
title: "Minsta värdet i en array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/62491-minsta-värdet-i-en-array"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Rulle"
published: "2002-12-17T22:45:04.000Z"
updated: "2002-12-19T23:10:09.000Z"
replies: 19
views: 1275
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/62491-minsta-värdet-i-en-array"
---

# Minsta värdet i en array

## #1 — Rulle, 2002-12-17T22:45Z

Hej igen

Om jag har en array där anv matat in 20 tal så är det ju ganska lätt att ta fram det högsta inmatade värdet.
Men hur tar jag fram det lägsta inmatade värdet.
Delar av koden(iMin kan man ju inte initiera till 0 för då blir det ju resultatet):
{ 
const int TAL=20;		
int a \[TAL\];
double total=0.0;		
int iMax = 0;			
int iMin ; 			

cout\<\<"Mata in tjugo heltal "\<\<endl; 

for (int i=0;i\<TAL;i++)	
cin\>\>a*;				

cout \<\< "Resultatet av din inmatning : "\<\<"\\n"\<\<endl;
{
for (i=0;i\<TAL;i++)		
cout \<\< "Tal nr " \<\<i+1\<\<" : "\<\<a*\<\< endl; }

for (i=0;i\<TAL;i++)		{
	total += a*;		
	if( a *\> iMax )		
		iMax = a*;	
	if( a *\< iMin )		
		iMin = a*;		

}*******

Permalänk: https://www.webforum.nu/p/62491

## #2 — niko, 2002-12-17T22:57Z

Du kan väl sätta den till INT_MAX i limits.h.

Permalänk: https://www.webforum.nu/p/887795

## #3 — Marcus E, 2002-12-17T22:57Z

Initiera iMin och iMax till det första talet i din array.

Permalänk: https://www.webforum.nu/p/887796

## #4 — Phorpher, 2002-12-17T23:00Z

Mata in enbart negativa tal så kommer inte din koll för största talet fungera heller...

Börja med att sätta iMin och iMax till första värdet i arrayen. Visar det sig att det finns mindre värden än iMin i arrayen så byter du ut dem. Detsamma gäller om det finns större värden än iMax.

Permalänk: https://www.webforum.nu/p/887797

## #5 — niko, 2002-12-17T23:11Z

```
#include <limits.h>

...
...

int iMax=INT_MIN; 
int iMin=INT_MAX ; 

...
...
```

Permalänk: https://www.webforum.nu/p/887802

## #6 — Rulle, 2002-12-17T23:21Z

Alltså

borde det bli så här:
int iMax = a \[0\]; 
int iMin = a \[0\]; 

eller ??

Permalänk: https://www.webforum.nu/p/887804

## #7 — Phorpher, 2002-12-18T06:34Z

> borde det bli så här: 
> int iMax = a \[0\]; 
> int iMin = a \[0\];

 

Japp.

Permalänk: https://www.webforum.nu/p/887828

## #8 — Marcus E, 2002-12-18T10:51Z

Du kan också byta ut:

for (i=0;i\<TAL;i++) { 
total += a*;*

mot

total = a\[0\];
for (i=1;i\<TAL;i++) {

Fast då får du inte någon text utskriven. Jag skulle ha delat upp det i två separata slingor.

Permalänk: https://www.webforum.nu/p/887933

## #9 — niko, 2002-12-18T10:59Z

Och jag vidhåller min lösning som den snyggaste och enklaste. Men smaken är ju olika ..  ;)

Permalänk: https://www.webforum.nu/p/887945

## #10 — Rulle, 2002-12-18T21:31Z

Funkar inte

minsta värdet blir -858993460 ????????

Permalänk: https://www.webforum.nu/p/891305

## #11 — Phorpher, 2002-12-18T21:50Z

Rulle:
Hur ser din kod ut nudå?

niko: 
Jag är tvungen att inte hålla med. Så mycket enklare än det sättet som Marcus och jag föreslog kan jag ju inte påstå att din lösning är...

Permalänk: https://www.webforum.nu/p/891314

## #12 — Rulle, 2002-12-18T22:06Z

Så här

Jag ändrade bara dessa två:

int iMax = a \[0\]; 
int iMin = a \[0\]; 

Testa och gör en utskrift av iMin samt iMax.
iMax funkar men inte iMin ?????

Permalänk: https://www.webforum.nu/p/891327

## #13 — Phorpher, 2002-12-18T22:23Z

Du måste ju givetvis fylla arrayen med dina värden innan du sätter iMin och iMax. När du sätter iMin och iMax nu så innehåller a\[0\] enbart skräpvärden.

Permalänk: https://www.webforum.nu/p/891346

## #14 — niko, 2002-12-18T22:29Z

> **Phorpher skrev:**
>
> Jag är tvungen att inte hålla med. Så mycket enklare än det sättet som Marcus och jag föreslog kan jag ju inte påstå att din lösning är...

Tja, som sagt .. Man sparar ju ett par rader och är helt skyddad mot eventuella problem med oinitierade tilldelningar om koden inte placeras på rätt ställe.  ;)

Permalänk: https://www.webforum.nu/p/891350

## #15 — Phorpher, 2002-12-18T22:40Z

> **niko skrev:**
>
> Tja, som sagt .. Man sparar ju ett par rader och är helt skyddad mot eventuella problem med oinitierade tilldelningar om koden inte placeras på rätt ställe.  ;)

Jag är beredd att hålla med dig nu faktiskt. ;)

Permalänk: https://www.webforum.nu/p/891352

## #16 — Rulle, 2002-12-18T22:52Z

Precis

tack så mycket, jag har stångats med detta för länge.
Är bara i början av min C++-karriär, suck.....

Permalänk: https://www.webforum.nu/p/891355

## #17 — Rulle, 2002-12-19T21:51Z

Limits.h

Är ju som sagt ny på detta.
Men i Limits.h lägger man då till dessa rader:
\#include \<limits.h\>

...
...

int iMax=INT_MIN; 
int iMin=INT_MAX ; 

...
...

och bortkommenterar följande:
\#define INT_MIN     (-2147483647 - 1) /\* minimum (signed) int value \*/
\#define INT_MAX       2147483647    /\* maximum (signed) int value \*/

Permalänk: https://www.webforum.nu/p/891917

## #18 — niko, 2002-12-19T22:43Z

Nej, du ska inte ändra i limits.h.

I koden du visade ovan så ersätter du:

int iMax = 0; 
int iMin ; 

med:

int iMax=INT_MIN; 
int iMin=INT_MAX ; 

och sen inkluderar du limits.h bland dina övriga includes i samma kod. Det är allt.

Permalänk: https://www.webforum.nu/p/891951

## #19 — Rulle, 2002-12-19T23:03Z

Härligt

tack.
Finns det någonstans där man kan läsa om vad olika include-filer innehåller??

Permalänk: https://www.webforum.nu/p/891964

## #20 — developer, 2002-12-19T23:10Z

Re: Härligt

> **Rulle skrev:**
>
> tack.
> Finns det någonstans där man kan läsa om vad olika include-filer innehåller??

En bok om C++ är en bra investering, jag skulle säga att det är dumt att försöka lära sig C++ utan att investera i en vettig bok. Sök i detta forum så hittar du boktips. Se även relaterade länkarna som finns.

Permalänk: https://www.webforum.nu/p/891965

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/62491-minsta-värdet-i-en-array
