bjornidar Skrevet 27. september 2007 Del Skrevet 27. september 2007 Reprogramert en tidligere publisert kode, med bruk av temp variabler for så å kopiere verdiene til 2 nye variabler. koden ligger her.. jeg skulle gjerne hatt koden til å regne ut antall runder på feks. 10000meter (den er i boks), men når det kommer til passeringstider osv. så får jeg skrevet inn passering for 1 og 2 KUN en gang før den spør om jeg il avslutte. Noen som kan hjelpe meg? Lenke til kommentar
JAPCU Skrevet 28. september 2007 Del Skrevet 28. september 2007 (endret) Greiere om du legger koden rett inn her vha "KODE" og "SKJUL" taggene. Klikk for å se/fjerne innholdet nedenfor // Program skrevet av Bjørn Idar Kristiansen 27.09.2007 // Funksjonalitet: Gjøre jobben for skøytekommentatorene enklere // og raskere slik at de lett kan finne forrige passeringstid osv. #include <iostream> using namespace std; struct loper { int nr, ant_passeringer, mm, ss, hh; float tid_hittil; }; int main() { int distanse, ttot, tloper, ant_runder; char svar; loper nr, nr1, nr2; nr.ant_passeringer = 0; nr.mm = 0; nr.ss = 0; nr.hh = 0; nr1.ant_passeringer = 0; nr1.mm = 0; nr1.ss = 0; nr1.hh = 0; nr2.ant_passeringer = 0; nr2.mm = 0; nr2.ss = 0; nr2.hh = 0; loper temp; temp.mm = 0; temp.ss = 0; temp.hh = 0; temp.tid_hittil = 0; cout << "Tast inn distanse (500, 1000,"; cout << " 1500, 3000, 5000, 10000) :"; cin >> distanse; while(distanse != 500 && distanse != 1000 && distanse != 1500 && distanse != 3000 && distanse != 5000 && distanse != 10000) { cout << "\nUlovlig distanse, pr0v igjen!\n"; cout << "Tast inn distanse (500, 1000,"; cout << " 1500, 3000, 5000, 10000) :"; cin >> distanse; } ant_runder = distanse / 400; // Regner ut antall runder if(distanse % 400 != 0 ) // Legger til én om svaret. ant_runder ++; // er et desimaltall do { do { ttot = 0; tloper = 0; nr = ((tloper == 1) ? nr1 : nr2); cout << "Tast inn l0pernummer (1-2) :"; cin >> tloper; while(tloper < 1 || tloper > 2) { cout << "Tast inn l0pernummer (1-2) :"; cin >> tloper; } for( tloper = 1; tloper <= 2; tloper++) { int m = 0, s = 0, h = 0; // Lager en temp. variabel // for forkorting cout << "\nTast inn passeringstid (mm ss hh) for l0per" << tloper << ": "; cin >> m >> s >> h; while(m < 0 || m > 20 || s < 0 || s > 59 || h < 0 || h > 99) { cout << "\nUgyldig paseringstid\n"; cout << "Tast inn passeringstid (mm ss hh): "; cin >> m >> s >> h; } cout << "Passeringstid: \n"; cout << m << ':' << s << ':' << h; ant_runder = nr.ant_passeringer; temp.tid_hittil = (m*60)+s+(h/100); // Kopierer over hjelpevar. temp.mm = m; temp.ss = s; temp.hh = h; // til temp }//END OF FOR LOOP if (tloper == 1) { nr = nr1; nr1.ant_passeringer--; nr1.tid_hittil = temp.tid_hittil; } else { nr = nr2; nr2.ant_passeringer--; nr2.tid_hittil = temp.tid_hittil; } while(nr1.ant_passeringer > 0 && nr2.ant_passeringer > 0) { while(tloper < 1 || tloper > 2) { cout << "Tast inn l0pernummer (1-2) :"; cin >> tloper; } } }while(nr1.ant_passeringer > 0 && nr2.ant_passeringer > 0); cout << "\n\nFlere par? (j/N): "; cin >> svar; svar = toupper(svar); }while(svar == 'J'); return 0; } Kan du legge inn flere kommentarer? F.eks //denne løkka gjentas til løperne er ferdige. leser inn rundetidene og skriver ut ... til slutt. Det må være noe galt med betingelsen som får løkka til å avslutte.. eller så blir en betingelse aldri sann. Hakke satt meg inn i det. ... Du kan prøve en debugger og se hvordan koden gjennomløpes. Lykke til Endret 28. september 2007 av JAPCU 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å