Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błąd w obliczaniu czasu

Ostatnio zmodyfikowano 2016-09-24 20:57
Autor Wiadomość
Meusz
Temat założony przez niniejszego użytkownika
Błąd w obliczaniu czasu
» 2016-09-24 19:09:08
Witam, do rozwiązania mam zadanie o treści:
Kolejka górska odjeżdża ze stacji Bajniki Zdrój o godzinie T1 i przyjeżdża do stacji Bajlandia Zdrój o godzinie
T2. Wyznacz w sekundach czas podróży kolejką wiedząc, że podróż nie trwa dłużej niż jedną dobę.
Wejście
Pierwszy wiersz wejścia zawiera trzy liczby całkowite g1, m1 i s1: g1 z zakresu 0..23, m1 z zakresu 0..59 i s1 z
zakresu 0..59 - czas odjazdu kolejki T1. Podobnie w wierszu drugim zapisano czas przyjazdu kolejki T2.
Wyjście
Pierwszy i jedyny wiersz wyjścia zakończony znakiem nowej linii powinien zawierać liczbę sekund od chwili T1
do chwili T2.
Przykład
Dla danych wejściowych:
10 35 3
10 35 3
poprawnym wynikiem jest:
0
Dla danych wejściowych:
13 48 6
13 51 41
poprawnym wynikiem jest:
215
A natomiast mój kod wygląda tak:
C/C++
#include <iostream>
#include <cmath>

using namespace std;

int g1, m1, s1, t1, g2, m2, s2, t2, w;

int main()
{
    cin >> g1 >> m1 >> s1 >> g2 >> m2 >> s2;
    t1 ==(( g1 * 3600 ) +( m2 * 60 ) + s1 );
    t2 ==(( g2 * 3600 ) +( m2 * 60 ) + s2 );
    if(( g1 >= 0 && g1 <= 23 ) &&( m1 >= 0 && m1 <= 59 ) &&( s1 >= 0 && m1 <= 59 ) &&( g2 >= 0 && g2 <= 23 ) &&( m2 >= 0 && m2 <= 59 ) &&( s2 >= 0 && s2 <= 59 ) )
    {
        t2 - t1 == w;
        cout << w;
    }
    else return 0;
   
}
Cokolwiek wpiszę, wypisane jest zawsze 0.
P-151969
carlosmay
» 2016-09-24 19:17:08
==
 to nie jest operator przypisania,
a tutaj przypisanie jest w niewłaściwą stronę
t2 - t1 == w;
P-151970
Meusz
Temat założony przez niniejszego użytkownika
» 2016-09-24 19:27:32
Zmienienie tego nie pomogło, kod wygląda następująco:
C/C++
#include <iostream>
#include <cmath>

using namespace std;

int g1, m1, s1, t1, g2, m2, s2, t2, w;

int main()
{
    cin >> g1 >> m1 >> s1 >> g2 >> m2 >> s2;
    t1 ==(( g1 * 3600 ) +( m2 * 60 ) + s1 );
    t2 ==(( g2 * 3600 ) +( m2 * 60 ) + s2 );
    if(( g1 >= 0 && g1 <= 23 ) &&( m1 >= 0 && m1 <= 59 ) &&( s1 >= 0 && m1 <= 59 ) &&( g2 >= 0 && g2 <= 23 ) &&( m2 >= 0 && m2 <= 59 ) &&( s2 >= 0 && s2 <= 59 ) )
    {
        w == t2 - t1;
        cout << w;
    }
    else return 0;
   
}
P-151971
kistel66
» 2016-09-24 19:35:33
==
 to nie jest operator przypisania.
w = t2 - t1
;
P-151972
Meusz
Temat założony przez niniejszego użytkownika
» 2016-09-24 20:03:23
Wciąż zmienienie tej linijki kodu nie naprawiło programu.
P-151973
carlosmay
» 2016-09-24 20:57:29
Przeanalizuj swój kod i wszędzie tam gdzie ma być operator przypisania, wstaw go tam.

Edit: nie używaj zmiennych globalnych.
Operacje porównania. Zobacz - Często popełniany błąd przez początkujących
P-151978
« 1 »
  Strona 1 z 1