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