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

[C++] Problem z warunkiem w if

Ostatnio zmodyfikowano 2014-11-21 13:17
Autor Wiadomość
Master_Goblin
Temat założony przez niniejszego użytkownika
[C++] Problem z warunkiem w if
» 2014-11-21 13:17:54
Witam
Napisałem pewien program, który w skrócie wygląda tak:
C/C++
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>

using namespace std;

typedef unsigned long long int lint;


int main( void )
{
   
   
    lint x[ 2 ], y[ 2 ];
    cout << fixed;
    double time, k[ 4 ][ 2 ], t[ 2 ], krok, i = 0.0, skala;
    t[ 0 ] = t[ 1 ] = 0;
    ofstream wyj;
    wyj.open( "macierz.txt", ios_base::out | ios_base::trunc );
    if( !wyj )
    {
        cout << "Blad pliku" << endl;
        exit( EXIT_FAILURE );
    }
    x[ 1 ] = 3;
    y[ 1 ] = 6;
    time = 100;
    krok = 0.001;
    skala = 10.0;
   
   
    while( t[ 1 ] <= time )
    {
        t[ 0 ] = t[ 1 ];
        x[ 0 ] = x[ 1 ];
        y[ 0 ] = y[ 1 ];
       
        cout << t[ 0 ] << " == " << i * skala << endl;
        if( t[ 0 ] == i * skala )
        {
           
            wyj << x[ 0 ] << " " << y[ 0 ] << " " << t[ 0 ] << endl;
            i = i + 1.0;
            cout << "warunek spelniony, i = " << i << endl;
        }
        x[ 1 ] = x[ 0 ] + 5;
        y[ 1 ] = y[ 0 ] + 3;
       
        t[ 1 ] = t[ 0 ] + krok;
       
    }
   
    cout << x[ 1 ] << endl;
    cout << y[ 1 ] << endl;
    cout << "t: " << t[ 1 ] << endl;
   
   
    return 0;
}

W pętli mam instrukcję if, która uruchamia się jeśli t[0] jest równe i*skala, czyli dla przykładu z programu warunek powinien się spełnić dla t[0] = 0 i i = 0, t[0] = 10 i i = 1, ..., t[0] = 100 i i = 10. I problem tym, że warunek spełnia się tylko dla i = 0. Dałem nawet przed if-em cout, żeby mi wypisywał ten warunek, i te dwie zmienne na 100% są równe w pewnych momentach. Myślałem, że to może problem z konwersją typów, ale dałem "i", "skala" i "t" jako double i nic to nie zmieniło. Nie wiem już o co może chodzić.
Z góry dzięki za pomoc.
P-121093
« 1 »
  Strona 1 z 1