Gå til innhold

[løst] Tall fra en tabell havner på magisk vis i en annen?


Anbefalte innlegg

Heisann.

 

Når jeg printer ut aarstallGammel, får jeg følgende resultat:

 

1949

1956

1951

1954

-858993460

-858993460

-858993460

266000

261000

258000

 

 

De fire øverste tallene er jo greie, de skal være der fordi det er disse tallene som er under 1960.

de tre minus-tallene er også forklarlige... det er de resterende tomrommene i tabellen. Men, jeg skjønner ikke hvorfor deler av inntekt-tabellen plutselig kommer inn i årstall-tabellen :S Det eneste som skjer i koden før denne tabellen skrives ut, er jo at:

1. instruksjonene skrives ut

2. tabellen aarstall blir laget og fylt inn

3. tabellen inntekt blir laget og fylt inn

4. til slutt kjøres for-løkka.

 

ingen av disse punktene innebærer at inntekt skal settes inn i aarstallGammel-tabellen, så jeg ser ikke hvorfor dette skjer. Noen som kan bistå en dag før eksamenen min? :blush:

 

 

// gamung.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

void instruksjoner(void);
void lagAarstall(int *aarstall);
// void lagAarstallGammel(const int *aarstall, int teller);
void lagAarstallGammel(const int *aarstall, int teller, int *aarstallGammel);
void lagInntekt(int *inntekt);
void sorterGammel(int *tabellGammel);

int _tmain(int argc, _TCHAR* argv[])

{
 int aarstall[10];
 int teller = 0;
 int gteller = 0;
 int uteller = 0;
 int tellerSortert = 0;
 int inntekt[10];
 int aarstallGammel[5];
 int aarstallUng[8];
 int inntektGammel[10];
 int inntektUng[10];
 instruksjoner();
 lagAarstall(aarstall);
 lagInntekt(inntekt);
 cout<<"Gamle:"<<endl;
 for (teller=0; teller<10;teller++)
   {
     if (aarstall[teller]<1960)
{
  aarstallGammel[gteller] = aarstall[teller];
  inntektGammel[gteller] = inntekt[teller];
  cout<<aarstallGammel[gteller]<<" tjener "<<inntektGammel[gteller]<<endl;
  gteller++;
}
   }
//   cout<<aarstall[0]<<endl;
//   cout<<aarstall[5]<<endl;
//   cout<<aarstall[8]<<endl;


 cout<<aarstallGammel[0]<<endl;
 cout<<aarstallGammel[1]<<endl;
 cout<<aarstallGammel[2]<<endl;
 cout<<aarstallGammel[3]<<endl;
 cout<<aarstallGammel[4]<<endl;
 cout<<aarstallGammel[5]<<endl;
 cout<<aarstallGammel[6]<<endl;
 cout<<aarstallGammel[7]<<endl;
 cout<<aarstallGammel[8]<<endl;
 cout<<aarstallGammel[9]<<endl;
 sorterGammel(inntektGammel);
 cout<<endl<<"Her er det sortert: "<<endl;


//   for (tellerSortert=0; tellerSortert<10; tellerSortert++)
//     {
//       cout<<aarstallGammel[tellerSortert]<<" tjener "<<inntektGammel[tellerSortert]<<endl;
//     }

 cout<<endl<<"Unge:"<<endl;
 for (teller=0; teller<10; teller++)
   {
     if (aarstall[teller]>=1960)
{
  aarstallUng[uteller]=aarstall[teller];
  inntektUng[uteller] = inntekt[teller];
  cout<<aarstallUng[uteller]<<" tjener "<<inntektUng[uteller]<<endl;
  uteller++;
}
   }



//   lagAarstallGammel(aarstall, teller);
//   lagAarstallGammel(aarstall, teller, aarstallGammel);
//   skrivAarstall(aarstall, teller);

 system("pause");
 return 0;
}


// ---------------------------------------
// 
// Funksjon som skriver ut instruksjoner
// for programmet.
// 
// ---------------------------------------
void instruksjoner(void)
{
 cout << "Skriver ut to tabeller, der alle som er foedt foer 1960 havner i tabellen for de gamle";
 cout << endl;
}

// -----------------------------
// 
// Funksjon som lager tabellen for aarstallene;
// 
// -----------------------------
// void lagAarstall(int *aarstall[10] = {1949, 1961, 1978, 1956, 1966, 1951, 1965, 1967, 1954, 1972} // Ut: aarstall
void lagAarstall(int *aarstall) // Ut: aarstall

{
//   aarstall = {1949, 1961, 1978, 1956, 1966, 1951, 1965, 1967, 1954, 1972};
 aarstall[0]=1949;
 aarstall[1]=1961;
 aarstall[2]=1978;
 aarstall[3]=1956;
 aarstall[4]=1966;
 aarstall[5]=1951;
 aarstall[6]=1965;
 aarstall[7]=1967;
 aarstall[8]=1954;
 aarstall[9]=1972;
} // end aarstall


// -----------------------------
// 
// Funksjon som lager tabellen for inntektene;
// 
// -----------------------------
// void lagInntekt(int *inntekt[10] = {1949, 1961, 1978, 1956, 1966, 1951, 1965, 1967, 1954, 1972} // Ut: aarstall
void lagInntekt(int *inntekt) // Ut: inntekt

{
//  = {266000, 261000, 258000, 254000, 251000, 249000, 244000, 205000, 197000, 194000};

 inntekt[0]=266000;
 inntekt[1]=261000;
 inntekt[2]=258000;
 inntekt[3]=249000;
 inntekt[4]=251000;
 inntekt[5]=254000;
 inntekt[6]=244000;
 inntekt[7]=205000;
 inntekt[8]=197000;
 inntekt[9]=194000;
} // end inntekt




void sorterGammel(int *inntektGammel)	// Inn/ut
{
 int start;
//   int hittilMinst = start;
 int hittilMinst;
 int teller2;
 int antall = 10;
 int c = 0;

 for (start = 0; start < antall; start++)
   {
     hittilMinst = start;
     for(teller2 = start+1; teller2 <antall; teller2++)
{
  if (inntektGammel[teller2] < inntektGammel[hittilMinst])
    {
      hittilMinst = teller2;
// 	      cout << ++c;
    }
} // for teller2
     int hjelp = inntektGammel[hittilMinst];
     inntektGammel[hittilMinst] = inntektGammel[start];
     inntektGammel[start] = hjelp;
   } // for start

}     // for sorterTall

Endret av r2d290
Lenke til kommentar
Videoannonse
Annonse

veeeent nå litt... Feilen er kanskje at jeg setter to tabeller lik hverandre aarstallGammel[gteller] = aarstall[teller];

ser at det står i boka mi at det er fy-fy. Får se om jeg får endret det =)

 

glem det. jeg gjorde det visst som det sto i boka likevel, så problemet står fortsatt... :dontgetit:

 

 

edit: bare glem det, jeg fikk det til på et vis :D

Endret av r2d290
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...