Gå til innhold

Tilordning av arrays til egendefinerte structs


Anbefalte innlegg

Hei.

Jeg sitter og gjør en skoleoppgave og har fått et problem som jeg håper noen av dere kanskje kan hjelpe meg med. Jeg oppretter strukturen Musician og strukturen Band. Band skal ta en array av lengde fire og typen Musician. Selve oppsettet av strukturene er ikke noe porblem, det som der i mot er vanskelig er tilordningen! Jeg har satt opp en array av typen Musician og lengde fire men klarer ikke å tilordne. Koden min ser slik ut:

 

#include <iostream>

#include <string>

using namespace std;

 

const int BANDSIZE = 4;

 

struct Musician {

string name;

int weight;

int height;

int beardLength;

};

 

struct Band {

string name;

bool rockBand;

int releases;

Musician musicians[4];

};

 

int totalBeardLength (Band band);

 

int main() {

Musician musicians[4];

musicians[0].beardLength = 2;

musicians[0].height = 184;

musicians[0].name = "Ola Dunk";

musicians[0].weight = 85;

 

musicians[1].beardLength = 3;

musicians[1].height = 170;

musicians[1].name = "Knut Knall";

musicians[1].weight = 69;

 

musicians[2].beardLength = 1;

musicians[2].height = 179;

musicians[2].name = "Kurt Kanon";

musicians[2].weight = 98;

 

musicians[3].beardLength = 5;

musicians[3].height = 190;

musicians[3].name = "Hans Hals";

musicians[3].weight = 92;

 

Band band;

band.musicians = musicians;

band.name = "Kurt & the Knallerts";

band.releases = 2;

band.rockBand = true;

 

cout << "Gruppa " << band.name << " har " << totalBeardLength() << " i samlet skjegglengde." << endl;

 

return 0;

}

 

int totalBeardLength (Band band) {

if (!band.rockBand) {

return -1;

}

 

int beard = 0;

 

for (int i = 0; i < BANDSIZE; i++) {

beard+= band.musicians.beardLength;

}

 

return beard;

}

 

Hva er problemet?

 

Setter stor pris på alle innspill!

 

Alexander Thorstensen

Endret av ashleik
Lenke til kommentar
Videoannonse
Annonse

Du kan ikke tilordne slik:

band.musicians = musicians;

med arrays (dessverre).

Hvis du heller erstatter den linjen med noe i retning dette:

for(int i = 0; i < 4; i++) {
   band.musicians[i] = musicians[i];
}

vil du ende opp med det resultatet jeg tror du er ute etter :)

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...