---
title: "pekare...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/112802-pekare"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Ciliax"
published: "2004-10-02T20:22:46.000Z"
updated: "2004-10-04T09:50:55.000Z"
replies: 5
views: 300
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/112802-pekare"
---

# pekare....

## #1 — Ciliax, 2004-10-02T20:22Z

Halloj.... Nybörjarn igen! :) Nu har jag ett litet dilemma med pekare som jag inte riktigt förstår....

jag har en loop som med hjälp av pekare ska köra igenom ett fält av int. Tre saker ska göras i loopen... 1 räkna ihop summan, 2 ta ut det största talet, 3 ta ut det minsta talet i vektorn.

summan är inget problem.. men som jag försöker lösa det.. så får jag inte ut det största och det minsta talet på detta vis... måste missa nått... hjälp en blind på väg.....

problemet blir att mnär jag skriver ut max och min pekarna.. så skrivs samma tal ut.... det tal som loop pekarn pekade på sist... varför??

```
int *max = tal,*min = tal,summa = 0;      /*skapar och initierar varibler för max,min, summa
                                                        max och min är pekare som initieras att peka på det
                                                        första elementet. summa är en vanlig int som sätts till 0
                                                        */

        /*
        loop som tar en int pekare och låter den peka på första talet i den dynamiska
        vektorn. Sedan stegar vi oss vektorn(fältet) med hjälp av pekaren och pekar-
        aritmetik och gör de uträkningar som programmet skall göra på vektorn.
        */
        for(int *ip = tal;ip < tal + antal; ip++)
        {

               cout << *ip << endl ;

               summa += *ip ;                  //adderar summan av alla tal

                if(*ip>*max)                     //om det aktuella talet är större än det största
                       *max = *ip ;             //så är det aktuella talet det största och byte sker

                if(*ip<*min)
                       *min = *ip ;
        }

        cout << "summa " << summa << endl;
        cout << "min " << *min << endl;
        cout << "max " << *max << endl;
```

Tacksam för svar...

/ciliax

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

## #2 — Ciliax, 2004-10-02T20:47Z

om nån behöver mer info så är det bara å säg till !:)

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

## #3 — GunnarD, 2004-10-02T21:17Z

/red: glöm det.

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

## #4 — PeW, 2004-10-02T22:39Z

Du ville nog ändra på vad min och max pekar på, men du ändrade istället värdet på det som de ursprungligen pekade på: första elementet i arrayen. Så genom att ta bort lite stjärnor så borde det fungera bättre:

Så: 

```
int *max = tal,*min = tal,summa = 0;      
        for(int *ip = tal;ip < tal + antal; ip++)
        {

               cout << *ip << endl ;

               summa += *ip ;                  //adderar summan av alla tal

                if(*ip>*max)                     //om det aktuella talet är större än det största
                       max = ip ;             //så är det aktuella talet det största och byte sker

                if(*ip<*min)
                       min = ip ;
        }

        cout << "summa " << summa << endl;
        cout << "min " << *min << endl;
        cout << "max " << *max << endl;
```

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

## #5 — Ciliax, 2004-10-04T07:28Z

Jag bugar å tackar för hjälpen. Suttit lite för länge då jag inte såg det själv.. men tackar sjukt mycke för hjälpen! :)

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

## #6 — PeW, 2004-10-04T09:50Z

OK  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/112802-pekare
