r2d290 Skrevet 6. mai 2010 Del Skrevet 6. mai 2010 (endret) Heisann. Når jeg printer ut aarstallGammel, får jeg følgende resultat: 19491956 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? // 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 6. mai 2010 av r2d290 Lenke til kommentar
r2d290 Skrevet 6. mai 2010 Forfatter Del Skrevet 6. mai 2010 (endret) 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... edit: bare glem det, jeg fikk det til på et vis Endret 6. mai 2010 av r2d290 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå