Process exited after x seconds with return value 3221225620

0

Witam,

napisałem prosty programik, który ma wyliczyć ile potrwa symulacja komputerowa procesu fizycznego. Działa to w ten sposób, że podaje się kolejno czas symulowanego procesu, jaką jego część już przeszło i ile czasu zegarowego to zajęło. Następnie program z prostej propocji liczy ile sekund to zajmie i przelicza (kod znaleziony w necie) na dni, godziny, minuty i sekundy.

Problem w tym, że zanim podam odpowiedź na 3 pytanie, program się zatrzymuje i wyświetla błąd: Process exited after x seconds with return value 3221225620

Poniżej wstawiłem kod. Czy ktoś wie w czym jest problem ?

#include <bits/stdc++.h>
using namespace std;
int t;
int d;
int p;
int n;

// funkcja do konwersji sekund
void ConvertSectoDay(int n)
{
    int day = n / (24 * 3600);
 
    n = n % (24 * 3600);
    int hour = n / 3600;
 
    n %= 3600;
    int minutes = n / 60 ;
 
    n %= 60;
    int seconds = n;
     
    cout << day << " " << "dni " << hour
         << " " << "godzin " << minutes << " "
         << "minut " << seconds << " "
         << "sekund "  << endl;
}
  
int main()
{
    cout<<"Ile sekund trwa cala analiza?"<<endl;
    cin>>t;
    cout<<"Ile sekund juz przeliczylo?"<<endl;
    cin>>d;
    cout<<"Ile sekund trwa juz analiza?"<<endl;
    cin>>p;    
    n=((t-d)*p)/d;
    ConvertSectoDay(n);
    return 0;
}
```c++
0

SOA #1: u mnie działa; https://ideone.com/WW8lZt :-)

W jaki sposób kompilujesz oraz uruchamiasz tę aplikację?

0

Korzystam z Dev-C++ (Uruchom --> Kompiluj i uruchom). Wiem w czym problem - pierwszy input to najczęściej 1 s więc drugi to jakiś ułamek sekundy (liczba zmiennoprzecinkowa) a ja mam wszystkie zmienne jako int.

I chyba nawet dobrze liczy ;-) Dzięki za pomoc.

0

3221225620 jako hex: C0000094 a to jest kod Windows na dzielenie przez zero

#define STATUS_INTEGER_DIVIDE_BY_ZERO    ((DWORD   )0xC0000094L)    
....
#define EXCEPTION_INT_DIVIDE_BY_ZERO        STATUS_INTEGER_DIVIDE_BY_ZERO

https://docs.microsoft.com/en-us/windows/win32/debug/getexceptioncode

Stawiam na to, że coś wpisałeś źle, strumień przeszedł w stan błędu i wyczytanie d nic nie zmieniło więc nadal ma wartość zero (zmienne globalne domyślnie są ustawiane na zero).

1 użytkowników online, w tym zalogowanych: 0, gości: 1