Permalänk
Medlem

Uppgift (c++) - hjälp!

Uppgiften: "Den här uppgiften handlar om att skriva ett program som läser in startnummer, starttid och
måltid för en godtycklig följd av tävlande i en idrottstävling. Startnummer för en tävlande
kan vara ett heltal större än noll (0). Start- och måltid anges som tre heltal: timme, minut
och sekund. De tävlande kan starta tävlingen vid olika tider och går förstås i mål på olika
tider. Den tävlande som har kortast tid mellan start och mål vinner."

Om jag matar in ett negativt startnummer så går den in i if-satsen, om jag matar in ett pos. startnummer så kommer den fortsätta i while-loopen. Jag är dock osäker på hur jag ska spara bästa resp. tid och bästa startnummer? Nedan är koden jag har gjort än så länge.

#include <iostream> using namespace std; int main(){ int starttid_timme, starttid_minuter, starttid_sek, starttid; //Deklarerar typen av variabler innan dom används. int maltid_timme, maltid_minuter, maltid_sek, maltid, res; int antal = 0; //Antal spelare är från början 0. int startnummer = 0; //Används för att initiera loopen. const int dygn = 24*60*60; cout << "Startnummer? "; cin >> startnummer; if (startnummer < 0) { //Programmet avslutas om startnumret antar ett negativt värde. antal = 1; //En spelare eftersom spelet kommer avslutas cout << "Starttid? " << endl; cin >> starttid_timme >> starttid_minuter >> starttid_sek; starttid = starttid_timme*3600 + starttid_minuter*60 + starttid_sek; cout << "Måltid? " << endl; cin >> maltid_timme >> maltid_minuter>> maltid_sek; maltid = maltid_timme*3600 + maltid_minuter*60 + maltid_sek; res = maltid - starttid; //den resulterande tiden, dvs vad som avgör vilken tid som är bäst! //Utskrifter! cout << "Antal tävlande: " << antal << endl; cout << "Startnummer är: " << startnummer << endl; cout << "Startid: " << starttid_timme << " " << starttid_minuter << " " << starttid_sek << endl; cout << "Måltid: " << " " << maltid_timme << " " << maltid_minuter << " " << maltid_sek << endl; cout << "Vinnare är nummer: " << startnummer << endl; cout << "Tid i sekunder: " << res << endl; } while (startnummer>0) //En loop som repeterar en viss information. { antal = antal + 1; //Mäter hur många spelare som varit med och spelat. cout << "Starttid? " << endl; cin >> starttid_timme >> starttid_minuter >> starttid_sek; starttid = starttid_timme*3600 + starttid_minuter*60 + starttid_sek; cout << "Måltid? " << endl; cin >> maltid_timme >> maltid_minuter>> maltid_sek; maltid = maltid_timme*3600 + maltid_minuter*60 + maltid_sek; res = maltid - starttid; //den resulterande tiden, dvs vad som avgör vilken tid som är bäst! //Utskrifter! cout << "Antal tävlande: " << antal << endl; cout << "Startnummer är: " << startnummer << endl; cout << "Startid: " << starttid_timme << " " << starttid_minuter << " " << starttid_sek << endl; cout << "Måltid: " << " " << maltid_timme << " " << maltid_minuter << " " << maltid_sek << endl; cout << "Vinnare är nummer: " << startnummer << endl; cout << "Tid i sekunder: " << res << endl; } cout << "Programmet avslutas" << endl; return 0; }

Permalänk
Medlem

För att code taggarna ska funka så ska de vara [code]. Det är lite svårt att läsa men ser att du kommer att fastna i while loopen då du inte skriver start nummer i den, du behöver heller inte if satsen om du gör så. Om du ändå vill ha samma funktion (att det körs minst en gång) så kan du använda en do while loop istället.

Permalänk
Medlem
Skrivet av swesen:

För att code taggarna ska funka så ska de vara [code]. Det är lite svårt att läsa men ser att du kommer att fastna i while loopen då du inte skriver start nummer i den, du behöver heller inte if satsen om du gör så. Om du ändå vill ha samma funktion (att det körs minst en gång) så kan du använda en do while loop istället.

Tack, tror jag har fått till det nu.