Wczytanie liczby, czy dobrze to napisalem ?

Wczytanie liczby, czy dobrze to napisalem ?
US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0

Hej chce zapytac czy dobrze napisalem program, polecenie jest nastepujace:

"Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej. "

A moj kod wyglada tak:

Kopiuj
#include <iostream>
int wczytajLiczbe()
{
   int a;
   std::cin >> a;
   return a;
}

int main()
{
    std::cout << "Podaj liczbe: ";
    int liczba = wczytajLiczbe();
    std::cout << "Podales liczbe: " << liczba << std::endl;
    return 0;
}

Dobrze wykonalem zadanie z polecenia ? Jesli nie prosze o korekte

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
0

Musisz dodać pętle z warunkiem sprawdzającą czy zmienna jest liczbą (funkcja isdigit z biblioteki cctype) mój błąd :P rozwiązanie podałem 2 posty nizej

US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0

Wolalbym jakies proste rozwiazanie ktorego do tej pory mialem okazje sie nauczyc

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
0
Kopiuj
#include <iostream>
#include <cctype>
#include <limits>
#include <cmath>
int wczytajLiczbe()
{
   std::cin.clear();
   std::cin.sync();
   int a;
   std::cin >> a;
   return a;
}

int main()
{
    int i=0, liczba=0;
    do{
        std::cout << "Podaj liczbe: ";
        liczba = wczytajLiczbe();
    }while(!((std::abs(liczba)>=1 && std::abs(liczba)<std::numeric_limits<int>::max())));
    std::cout << "Podales liczbe: " << liczba << std::endl;
    return 0;
}
 
US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0

@aksjio - Tak wiem o tych limitsach i wgl, kolega ktory mnie upomnial tez je proponowal i dal mi juz dobry kod, tylko ze nie mialem tego jeszcze w kursie ale mimo tego mam takie zadanie, a wiec chcialbym je wykonac przy pomocy tylko tych narzedzi ktore w tym kursie dopiero byly mi przedstawione.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.