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

Program dziwaczeje po wpisaniu litery zamiast liczby w losowaniu pseudolosowych - Dlaczego i jak zaradzić ?

42 Warsaw Coding Academy
0 głosów
843 wizyt
pytanie zadane 31 października 2017 w C i C++ przez szatko Nowicjusz (190 p.)

Jak w temacie, szaleje po wpisaniu litery , poza tym na liczbach normalnie działa.

#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int liczba;
int strzal;
int proba=0;
using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    cout<<"Pomyslalem liczbe od 1 do 100 , zgaduj"<<endl;

    srand(time(NULL));
   liczba=  rand ()% 100+1;




while (liczba!=strzal)
{
    proba++;
    cout<<"Zgdnij jaka"<<"To twoja "<<proba<<" proba"<<endl;
    cin>>strzal;

    if (liczba==strzal)
       cout<< "Udalo Ci sie"<<endl;

       else if (liczba<strzal)
        cout<<"To za duzo"<<endl;

       else if (liczba>strzal)
        cout<<"To za malo"<<endl;
}



getchar(); getchar();
    return 0;
}

 

komentarz 31 października 2017 przez DragonCoder Nałogowiec (36,500 p.)
1) Zachowanie jest naturalne, skoro do typu liczby calkowitej wstaeiamy typ zanku... mieszasz typy i tyle. Albo dodasz else, albo trzeba by bylo sprawdzac znaki. Lepiej dac else, tak to u mnie dzialalo

2) zmienne wstac do main

3) angieleksie nazwy zmiennych

4)ctime, cstdlib, zamiast .h

5)Jak sie nir myle, to do losowania liczb losowych, jest nowsza funkcja zgodnie z nowym standardem

2 odpowiedzi

0 głosów
odpowiedź 31 października 2017 przez mokrowski Mędrzec (158,440 p.)
Proszę, zapomnij o srand() i rand...

Na końcu masz przykład:

http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution

 

PS. Za zmienne globalne, okładamy witkami wierzbowymi po piętach :-)
0 głosów
odpowiedź 31 października 2017 przez obl Maniak (51,300 p.)

Próbujesz do int-a przypisać zmienną tekstową gdy podana zostanie litera lub ciąg znaków. Jeżeli chcesz być na to odporny to pobierz tekst a następnie zamień go na liczbę.

Podobne pytania

0 głosów
1 odpowiedź 336 wizyt
pytanie zadane 15 października 2017 w Java przez Dawidos01111 Nowicjusz (160 p.)
0 głosów
4 odpowiedzi 924 wizyt
0 głosów
3 odpowiedzi 1,120 wizyt

93,386 zapytań

142,385 odpowiedzi

322,547 komentarzy

62,748 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...