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

lekcja15 zad. nr 1 nieskonczona pętla

Ostatnio zmodyfikowano 2019-09-30 07:30
Autor Wiadomość
mierzvoj
Temat założony przez niniejszego użytkownika
lekcja15 zad. nr 1 nieskonczona pętla
» 2019-09-26 11:41:59
Dzień dobry
jak zacznę od cyfr jest ok. Niestety po wpisaniu litery wpadam w pętlę bez końca. Bardzo proszę o pomoc.
C/C++
#include <iostream>
#include <limits>
int main()
{
    int liczba;
   
    std::cout << "Podaj liczbe calkowita = " << std::endl;
    std::cin >> liczba;
   
   
    if( liczba <= 0 || liczba >= 0 == false )
    do
    {
        std::cin.clear();
        std::cin.ignore();
        std::cout << "Niepodałes liczby" << std::endl;
        std::cout << "Podaj liczbe calkowita =" << std::endl;
        std::cin >> liczba;
       
    } while( liczba <= 0 || liczba >= 0 == true );
   
   
    if( liczba <= 0 || liczba >= 0 == true )
    do
   
    { std::cout << "liczba=" << liczba << std::endl;
        std::cout << "Podaj liczbe calkowita = " << std::endl;
        std::cin >> liczba;
    } while( liczba <= 0 || liczba >= 0 == true );
   
    return 0;
}
P-175234
pekfos
» 2019-09-26 17:38:54
C/C++
liczba <= 0 || liczba >= 0 == true
Kręć pętlę, gdy liczba jest mniejsza, równa lub większa od zera. Dla liczb całkowitych, do opisu pasują wszystkie.
P-175235
mierzvoj
Temat założony przez niniejszego użytkownika
pętla ok, ale problem jest teraz gdzies dalej
» 2019-09-27 10:14:06
Koledzy i Koleżanki;
pętla wydaje się być ok. Nie wiem dlaczego, kod działa tylko dla dwóch wartości i następuje exit z programu.
C/C++
#include <iostream>
int main()
{
    int liczba;
    bool poprawnosc;
   
    std::cout << "Podaj liczbe calkowita = " << std::endl;
    std::cin >> liczba;
   
    if( liczba <= 0 || liczba >= 0 == false )
    do
    {
        {
            bool poprawnosc = false;
            std::cin.clear();
            std::cin.ignore();
            std::cout << "Niepodałes liczby" << std::endl;
            std::cout << "Podaj liczbe calkowita =" << std::endl;
            poprawnosc = std::cin.good();
            std::cin.clear();
            std::cin.ignore();
        }
    } while( poprawnosc == true );
   
    else;
   
    { std::cout << "liczba=" << liczba << std::endl;
        std::cout << "Podaj liczbe calkowita = " << std::endl;
        std::cin >> liczba;
    }
    return 0;
}
P-175239
pekfos
» 2019-09-27 18:01:45
C/C++
#include <iostream>
int main()
{
    int liczba;
    bool poprawnosc; // 'poprawnosc' #1
   
    std::cout << "Podaj liczbe calkowita = " << std::endl;
    std::cin >> liczba;
   
    if( liczba <= 0 || liczba >= 0 == false ) // Po co te redundantne warunki? liczba "mniejsza równa 0 lub mniejsza od zera"? Warunek po || niczego nie wnosi!
    do
    {
        {
            bool poprawnosc = false; // nowa zmienna 'poprawnosc' (#2)
            std::cin.clear();
            std::cin.ignore(); // Lekcja 9, czerwona ramka
            std::cout << "Niepodałes liczby" << std::endl;
            std::cout << "Podaj liczbe calkowita =" << std::endl;
            poprawnosc = std::cin.good(); // 'poprawnosc' #2 i pobierasz wartość po clear()
            std::cin.clear();
            std::cin.ignore();
        }
    } while( poprawnosc == true ); // 'poprawnosc' #1, nie użyta wcześniej i nie zainicjalizowana
   
    else; // średnik
   
    { std::cout << "liczba=" << liczba << std::endl;
        std::cout << "Podaj liczbe calkowita = " << std::endl;
        std::cin >> liczba;
    }
    return 0;
}
P-175244
mierzvoj
Temat założony przez niniejszego użytkownika
działa, nie działa
» 2019-09-28 22:01:30
[CPP]
#include <iostream>
int main()
{
    int liczba;
          
    std::cout << "Podaj liczbe calkowita = " << std::endl;
    std::cin >> liczba;
    bool blad = std::cin.fail();
   

 
  if ( blad==true )
  do
  {
    {
std::cin.clear();
std::cout << "Podaj liczbe calkowita 1= " << std::endl;
std::cin.ignore(1000, '\n' );
std::cin >> liczba;
    }
    } while (blad==false);

else;

{
std::cout << "Podaj liczbe calkowita 2= " << std::endl;
std::cin >> liczba;
}
return 0;
 }
[/CPP]
P-175253
pekfos
» 2019-09-28 22:54:28
Nie aktualizujesz blad.
P-175255
mierzvoj
Temat założony przez niniejszego użytkownika
dziękuję za pomoc
» 2019-09-30 07:30:09
#include <iostream>
[CPP]
#include <limits>
int main()
{
    int liczba;
         
    std::cout << "Podaj liczbe calkowita = " << std::endl;
    std::cin >> liczba;
    bool blad = std::cin.fail();
   
  if ( blad==true )
  do
  {
    {
std::cin.clear();
std::cout << "Podaj liczbe calkowita 1= " << std::endl;
std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
std::cin >> liczba;
blad = std::cin.good();

    }
    } while (blad==false);

else;
{
std::cout << "Podaj liczbe calkowita 2= " << std::endl;
std::cin >> liczba;
}
return 0;
 }
[/CPP]
P-175265
« 1 »
  Strona 1 z 1