Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C++] Za dużo wypisuje się mi na ekran, nie wiem jak to usunąć??

.michal 17 Gru 2011 15:55 783 2
  • #1 17 Gru 2011 15:55
    .michal
    Poziom 13  

    Witam,
    moje zadanie polegało na napisaniu programu do zadania:
    Problem 1 – Biznesmen
    Pewien biznesmen jest bardzo zapracowany. Pracuje całą dobę i o każdej porze ma sprawy do załatwienia. Za namową żony opracował on jednak kompromis -będzie poświęcał jej kilka godzin czasu na dobę – w formie jednego spotkania. Spróbuje on wygospodarować ten czas gdzieś pomiędzy kolejnymi ważnymi interesami. Zaproponować algorytm, który znając rozkład biznesmena danego dnia wyznaczy tak godzinę spotkania z żoną, by przepadło jemu jak najmniej ważnych spraw.
    Wejście:
    W pierwszej linii wejścia podana jest liczba terminów n (1<n<1000) oraz liczba g godzin poświęconych żonie (1<=g<=10). W kolejnych n liniach są podane w porządku rosnącym czasy (format GG:MM) ważnych spraw biznesmena. Zakładamy, że biznesmen potrafi te sprawy załatwić w czasie pimijalnie małym.
    Wyjście:
    W jedynej linii wyjścia podany jest czas rozpoczęcia spotkania z żoną oraz liczba spraw, która w czasie spotkania przepadnie biznesmenowi. Wynik ma być tak dobrany, by biznesmenowi przepadło jak najmniej spraw.
    Przykład:
    Wejście:
    5 6 //5 spraw, 6-godzinne spotkanie z żoną
    1:30
    6:20
    12:15
    17:55
    23:55
    Wyjście:
    0 17:55 //spotkanie z żoną w godzinach 17:55-23:55 i nie przepadnie w międzyczasie żadna sprawa

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Problem polega na tym że przy danych wejściowych:
    5 6 //5 spraw, 6-godzinne spotkanie z żoną
    1:30
    6:20
    12:15
    17:55
    23:55
    wypisuje się:
    0 90 360
    0 380 360
    90 380 360
    90 735 360
    90 1075 360
    90 1435 360
    380 735 360
    380 1075 360
    380 1435 360
    380 1440 360
    735 1075 360
    735 1435 360
    735 1440 360
    735 4200544 360
    1075 1435 360
    1435 1440 360
    1435 4200544 360
    1435 4469696 360
    1435 4436808 360
    biznesmen0 17:55

    a powinna wypisać się tylko ostatnia linijka, nie wiem jak to naprawić, może ktoś pomoże??

    0 2
  • #2 17 Gru 2011 16:18
    marcin2500
    Poziom 12  

    Nie uruchamiałem twojego programu, ale problemem jest poniższa linia:

    cout<<tab[i]<<" "<<tab[s]<<" "<<ile_godzin*60<<endl;

    Nie wiem czy jest to Ci potrzebne, czy zostało użyte do testów, ale to ona generuje niepożądane wiadomości.

    0
  • #3 18 Gru 2011 23:12
    Matejkos
    Poziom 20  

    Tak to jest ta linia oraz ewentualnie cin>>a który będzie nieco przeszkadzał a koledze autorowi proponuje jednak przeanalizowanie tego kodu i ewentualną naukę bo wygląda mi to na próbę dostosowania jakiegoś gotowca do własnych potrzeb, ale mimo wszystko wypadało by wiedzieć o co w tym chodzi.

    Pozdrawiam Matejkos

    0