View Single Post
void Topp::lesData(char nvn[]) {
Topp nvnn;
char moh1[] = "Meter over havet?";
char hoyde1[] = "Hoyde fra start?";
char lengde1[] = "lengde fra start?";

strcpy(nvnn.navn, nvn);
nvnn.moh = les(moh1, 0, 8848);
nvnn.hoyde = les(hoyde1, 0, 8848);
nvnn.lengde = les(lengde1, 0, 50);
}
Vis hele sitatet...
Hvorfor lager du nye arrayer her? De eksisterer jo fra før av. les funksjonen du bruker behøver kun tekst, altså moh = les("Meter over havet?", 0, 8848) i neste linje kan du erstatte tallet 8848 med moh, siden høyde kan ikke overstige moh. Si du skriver moh er 4000, da må jo begrensningen gå på 4000 og ikke 8848.
const char start[STRLEN] = "Startsted?";
const char slutt[STRLEN] = "Sluttsted?";
const char lengde1[STRLEN] = "Lengde i km?";
Vis hele sitatet...
det samme gjelder her. Unødvendig å lage nye arrays

for (int i = 0; i < (sizeof(toppene) / sizeof(toppene[0])); i++) {
char etappeTopp[STRLEN];
cout << "\nTopper som inngår i etappen, nr " << i + 1 << ": ";
cin >> etappeTopp;
finnTopp(toppene[i].navn)
Vis hele sitatet...
Bør sette i = 1 her istedenfor. Du har dessuten en fin variabel som heter sisteTopp som forteller deg hvilken topp som er sist brukt. Slik slipper du å gå igjennom de ubrukte verdiene i arrayen.
Sist endret av Morsken; 15. november 2017 kl. 15:47.