Hjälp med C++ program
Hej!
ska skriva ett program som läser in de tävlandes startnummer, tider och räknar ut vinnare.
vi får inte använda break,retur etc, utan endast av logisk uttryck. Jag har lyckats med att skriva koden men fastnat i loop.
Program som läser in startnummer, starttid och måltid för en godtycklig följd av tävlande idrottstävlingen. 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. Om program får start nummer -1 ska den säga ifrån och avslutas och inte fortsätta loppet. i mitt fall fortsätter program till starttid vilket det inte ska göra.
Skulle uppskatta hjälp.
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
int vinnandesek, vinnandenmin, vinnandetimme, start_min, start_tim, mal_sek, mal_min, mal_tim;
int vinnarnummer = 0, startnummer, start_tid, start_sek, mal_tid, tid=0, minst=24*60*60, antal=0;
const int dygn = 24*60*60;
cout << "Startnummer? ";
cin >> startnummer;
if ( startnummer<=0) {
cout << "Inga tävlande \n" << "Programmet avslutas " << endl; // Stoppar programmet direkt.
}
do
{
antal = antal + 1; // Program läser in antal tävlande,
//startar på 0 för varje varv +1!
cout << "Starttid? " << endl;
cin >> start_tim>>start_min>>start_sek; // Räknar ut starttiden direkt.
start_tid = start_tim*3600 + start_min*60 + start_sek;
cout << "Måltiden? "<<endl;
cin >> mal_tim>>mal_min>>mal_sek; // Program sparar måltiden direkt.
mal_tid = (mal_tim*3600 + mal_min*60 + mal_sek);
if (start_tid < mal_tid)
{
tid = mal_tid - start_tid;
}
else if (start_tid > mal_tid)
{
tid = mal_tid + (dygn - start_tid); // Om loppet passear midnatt måste program
//ta dygnet minus starttiden.
}
if (tid < minst) // Program räknar jämför ny löpares tid med
//tidigare löpares tid.
{
minst = tid;
vinnarnummer = startnummer;
}
cout << "Startnummer? "; // Startar nästa tävlande.
cin >> startnummer;
} while (startnummer>0);
vinnandetimme=minst/3600;
vinnandenmin=minst/60 - vinnandetimme*60;
vinnandesek=minst%60;
cout << "Vinnare är Startnr: " << vinnarnummer << endl;
cout << "Tid:" <<vinnandetimme<<"timmar "<<vinnandenmin<<"minuter "<<vinnandesek<<"sekunder "<<endl;
cout << "Antal tävlande:" << antal << endl;
cout << "Programmet avslutas" << endl;
return 0;
}
Resultatet ser ut så här:
Startnummer? -1
Inga tävlande
Programmet avslutas
Starttid? (detta ska inte komma med, och vi får inte använda break, retur...etc)