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

Zamiana ułamków

Ostatnio zmodyfikowano 2016-10-30 17:13
Autor Wiadomość
krolik5a
Temat założony przez niniejszego użytkownika
Zamiana ułamków
» 2016-10-30 16:49:11
Cześć, czy mógłby mi ktoś pomóc w zadaniu? Treść jest taka: Zamień ułamek dziesiętny na zwykły nieskracalny.
Np.:   0.5 = 1/2, 0.3 = 3/10, 0.25 = 1/4
    
Wejście
W pierwszym wierszu standardowego wejścia zapisano ułamek dziesiętny W (0.001 ≤ W ≤ 0.999),  z maksymalnie trzema miejscami po przecinku.
 
Wyjście 
W pierwszym wierszu standardowego wyjścia wypisz obliczony ułamek zwykły w postaci nieskracalnej (licznik’/’mianownik). 

Mój kod wygląda tak:
C/C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
    float W, x, y = 1000;
    cin >> W;
    x = W * 1000;
    if( fmod( x, 10 ) == 0 )
    {
        while( fmod( x, 10 ) == 0 && fmod( y, 10 ) == 0 )
        { x = x / 10;
            y = y / 10;
        } }
    if( fmod( x, 2 ) == 0 )
    {
        while( fmod( x, 2 ) == 0 && fmod( y, 2 ) == 0 )
        { x = x / 2;
            y = y / 2;
        } }
    if( fmod( x, 5 ) == 0 )
    {
        while( fmod( x, 5 ) == 0 && fmod( y, 5 ) == 0 )
        { x = x / 5;
            y = y / 5;
        } }
    cout << x << "/" << y << endl;
}
 Z góry dziękuję za pomoc :)
P-153060
pekfos
» 2016-10-30 17:13:29
z maksymalnie trzema miejscami po przecinku.
Pomnóż razy 1000 i podziel przez NWD wyniku i 1000.
P-153062
« 1 »
  Strona 1 z 1