mo Napisano Kwiecień 26, 2014 Zgłoś Udostępnij Napisano Kwiecień 26, 2014 Witam Wszystkich, mam taki problem w C++. Muszę zamienić ciąg cyfr na (liczbę) ułamek dziesiętny. Czyli podaję cyfry, które mają być po przecinku a dostaję ułamek (liczbę) mniejszy od 1. Przykłady: wejście: 089 wyjście: 0.089 (float) wejście: 123 wyjście: 0.123 (float) wejście: 0007 wyjście: 0.0007 (float) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Greg0r Napisano Maj 7, 2014 Zgłoś Udostępnij Napisano Maj 7, 2014 jeżeli chodzi o sam algorytm to wystarczy mnożyć tą liczbę co wpisywałeś/aś razy -10*ilosc_cyfr w danym ciągu znaków. Jeżeli można by było korzystać z c++11, i wejściową daną mógłby być string to sprawa prosta, jest do tego funkcja string to int - stoi( string ) --> http://en.cppreference.com/w/cpp/string/basic_string/stol. Do tego przyda się funkcja string.length(), która zwróci ilość_cyfr w stringu. Reasumując: cin >> input; float output=float(stoi(input)); // rzutowanie z inta na float for(int i =1; i>=input.length(); i++) output*=-10; cout << output; Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.