• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Powtarzanie programu

Object Storage Arubacloud
+1 głos
632 wizyt
pytanie zadane 10 lutego 2021 w C i C++ przez Makapaka182 Nowicjusz (230 p.)
edycja 10 lutego 2021 przez Makapaka182

Witam

Mam stworzyć program gdzie podaje się pierwszą liczbę komputer losuje drugą i je mnoży. Program ma to powtarzać dopóki nie wciśnie się q. Nie wiem co ja robię źle ale program nie działa.
Oto mój program:
 

#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
using namespace std;

int main()
{
    int liczba1, wynik;
    char klawisz, koniec;
    srand( time( NULL ) );
    int liczba2=( std::rand() % 6 ) + 7;
    
    do
    {
        cout<<"Podaj liczbe do pomnozenie: ";
        cin>>liczba1;
        while (liczba1<0)
        {
            cout<<"Liczba nie moze byc ujemna"<<endl<<endl;
            cout<<"Podaj liczbe do pomnozenie: ";
            cin>>liczba1;
        }
    
        cout<<"Mnozenie "<<liczba1<<" * "<<liczba2<< std::endl;

        cout<<"Jezeli juz obliczyles nacisnij ENTER"<<endl<<endl;
        klawisz=getch();
        while (klawisz!=13)
        {
            cout<<"Wcisnij ENTER"<<endl<<endl;
            klawisz=getch();
        }
        while (klawisz==13)
        {
            wynik=liczba1*liczba2;
            cout<<"Wynik to: "<<wynik<<endl<<endl;
            cout<<"Jezeli chcesz zakonczyc nacisnij 'q' jezeli nie chcesz nacisnij inny klawisz"<<endl<<endl;
            koniec=getch();
        }    
    }
    while (koniec='q');
    {
        cout<<"Koniec";
    }
    
    return 0;

 

komentarz 10 lutego 2021 przez Marak123 Stary wyjadacz (11,190 p.)

Wklej to w bloczek kodu 

//coś takiego

 

komentarz 10 lutego 2021 przez VBService Ekspert (252,660 p.)

Propozycja  wink

#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    int liczba1;
    char koniec;
    srand(time(NULL));
    int liczba2 = (rand() % 6) + 7;
     
    while(true)
    {
        cout << "Podaj liczbe do pomnozenie: ";
        cin >> liczba1;
        while (liczba1<=0)
        {
            cout << "Liczba nie moze byc ujemna lub rowna zero\n"
                 << "Podaj liczbe do pomnozenie: ";
             cin >> liczba1;
        }
     
        cout << "Mnozenie " << liczba1 << " * " << liczba2
             << "\nJezeli juz obliczyles nacisnij ENTER ";

        cin.ignore();
        cin.get();

        cout << "Wynik to: " << (liczba1*liczba2)
             << "\n\nJezeli chcesz zakonczyc nacisnij 'q' "
             << "jezeli nie chcesz nacisnij klawisz Enter ";

        cin.get(koniec);
        if (koniec=='q') break;
    }

    cout << "Koniec";
     
    return 0;
}

komentarz 11 lutego 2021 przez Makapaka182 Nowicjusz (230 p.)
Dziękuje przyda się

2 odpowiedzi

0 głosów
odpowiedź 10 lutego 2021 przez Marak123 Stary wyjadacz (11,190 p.)
wybrane 10 lutego 2021 przez Makapaka182
 
Najlepsza
Rozpoczynasz pętle do...while i jej nie zakańczasz tej pętli bo widzę kolejne nawiasy czyli wychodzi na to ze rozpoczynasz kolejną pętle while w której używasz tak jak ci napisał Author operatora przypisania a nie porównania.
komentarz 10 lutego 2021 przez Makapaka182 Nowicjusz (230 p.)
Czyli jak by to poprawnie miało wyglądać bo nie za bardzo rozumiem?
komentarz 10 lutego 2021 przez Marak123 Stary wyjadacz (11,190 p.)
operator przypisania to pojedynczy znak równa się (=)

operator porównania to podwójny znak równa się (==)

https://miroslawzelent.pl/kurs-c++/operatory-w-c++/

 

pętla do...while

https://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-do-while/18
komentarz 10 lutego 2021 przez Marak123 Stary wyjadacz (11,190 p.)
A po za tym to usuń std:: sprzed funcji rand bo masz to zdefiniowane u góry linijka 5
komentarz 10 lutego 2021 przez Makapaka182 Nowicjusz (230 p.)

@Marak123, Dziękuje bardzo

+1 głos
odpowiedź 10 lutego 2021 przez Author[] Gaduła (3,130 p.)
Używasz operatora przypisania a nie porównania. Pomijając to popełniasz wiele błędów - po co piszesz std:: jak wcześniej masz using namespace std;

Podobne pytania

0 głosów
2 odpowiedzi 6,983 wizyt
pytanie zadane 21 września 2017 w C i C++ przez Resmittieno Początkujący (280 p.)
+1 głos
2 odpowiedzi 91 wizyt
0 głosów
2 odpowiedzi 241 wizyt
pytanie zadane 3 listopada 2021 w C i C++ przez topol_123 Nowicjusz (190 p.)

92,539 zapytań

141,382 odpowiedzi

319,479 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...