mo Napisano Kwiecień 26, 2014 Zgłoś 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
Greg0r Napisano Maj 7, 2014 Zgłoś 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
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.