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

Problem z programem do losowania liczb

Ostatnio zmodyfikowano 2012-06-26 23:53
Autor Wiadomość
malan
» 2012-06-26 23:21:54
C/C++
int main()
srand( time( NULL ) );
{
    //...
}
Na pewno tak?
P-59224
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-26 23:26:33
seamonster wiem na czym polega roznica miedzy string a char lecz nie wiedzialem ze string nie mozna umieszac w ' ' i masz za to u mnie piwo LECZ sranda nadal nie naprawilem a po usunieciu tych ' ' moj skrypt wyglada tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "time.h"
#include "cstdlib"
using namespace std;


int funkcja_losujaca()
{
    int losowanie_liczby;
    losowanie_liczby =( rand() % 60 ) + 50;
    return losowanie_liczby;
}



int main()
{
    srand( time( NULL ) );
    int wywolanie, wywolanie_ponowne;
    string tak, nie;
   
    string TAK, NIE;
    cout << "Liczba zostala juz wylosowana" << endl;
    cout << "Czy chcesz wywolac funkcje?\nNapisz tak lub nie: " << endl;
    cout << "Wybierasz: ";
    cin >> wywolanie;
    switch( wywolanie )
    {
    case tak:
        cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl;
       
    case nie:
        cout << "To nie. Laski bez xD" << endl;
        getch();
    }
    if( wywolanie == tak )
    {
        do
        {
            cout << "A moze chcesz jeszcze raz wywolac funkcje? " << endl;
            cout << "Jesli chcesz to napisz T, jesli napiszesz N to program konczy dzialanie: " << endl;
            cin >> wywolanie_ponowne;
            switch( wywolanie_ponowne )
            {
            case TAK:
                cout << "Ponownie wylosowana liczba to: " << funkcja_losujaca() << endl;
               
            case NIE:
                cout << "W takim razie dziekuje" << endl;
                getch();
            }
           
           
        } while( wywolanie_ponowne == NIE );
       
    }
    return 0;
}

i mam takie bledy :

D:\C++\Prace domowe.cpp||In function 'int main()':|
D:\C++\Prace domowe.cpp|32|error: 'tak' cannot appear in a constant-expression|
D:\C++\Prace domowe.cpp|35|error: 'nie' cannot appear in a constant-expression|
D:\C++\Prace domowe.cpp|39|error: no match for 'operator==' in 'wywolanie == tak'|
D:\C++\Prace domowe.cpp|48|error: 'TAK' cannot appear in a constant-expression|
D:\C++\Prace domowe.cpp|51|error: 'NIE' cannot appear in a constant-expression|
D:\C++\Prace domowe.cpp|57|error: no match for 'operator==' in 'wywolanie_ponowne == NIE'|
||=== Build finished: 6 errors, 0 warnings ===|


Czekam na podpowiedzi i wytlumaczenia.
@Do pomagajacych mi ludzi badzcie cierpliwi programuje dopiero trzeci dzien ;(
P-59227
Marcinowy
» 2012-06-26 23:29:12
C/C++
int wywolanie, wywolanie_ponowne;
string tak, nie;

string TAK, NIE;
cout << "Liczba zostala juz wylosowana" << endl;
cout << "Czy chcesz wywolac funkcje?\nNapisz tak lub nie: " << endl;
cout << "Wybierasz: ";
cin >> wywolanie;
switch( wywolanie )

Okej, int to cyferka, a nie literki, więc dlaczego oczekujesz ode mnie, że wpiszę literkę, kiedy wymagasz cyferki? :)
P-59229
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-26 23:31:41
ludzie namieszaliscie mi w glowie xddd
marcinek zmieniajac z  :  int wywolanie, wywolanie_ponowne;  na   :  string wywolanie, wywolanie_ponowne; wyskakuja mi jeszcze inne bledy. Prosze jakiegos kogza ktory mi to poprawi i poda kod a ja go swobodnie przeanalizuje
P-59230
DejaVu
» 2012-06-26 23:33:53
1. Jeden temat = jeden problem. Obecnie nie toczą się dyskusje na temat błędu występującego w temacie. On został rozwiązany (chyba).

Zapoznaj się z rozdziałem: » Kurs C++ » Poziom 1Warunek wielokrotnego wyboru switch ... case lekcja. Po przeczytaniu ze zrozumieniem będziesz wiedział dlaczego otrzymujesz błędy.

/edit:
Prosze jakiegos kogza ktory mi to poprawi i poda kod a ja go swobodnie przeanalizuje
Z takim podejściem możesz zacząć szukać innego forum :)
P-59231
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-26 23:36:52
DejaVu okej zczailem sie i moj kod wyglada teraz tak :

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "time.h"
#include "cstdlib"
using namespace std;


int funkcja_losujaca()
{
    int losowanie_liczby;
    losowanie_liczby =( rand() % 60 ) + 50;
    return losowanie_liczby;
}



int main()
{
    srand( time( NULL ) );
    string wywolanie, wywolanie_ponowne, tak, nie;
   
    string TAK, NIE;
    cout << "Liczba zostala juz wylosowana" << endl;
    cout << "Czy chcesz wywolac funkcje?\nNapisz tak lub nie: " << endl;
    cout << "Wybierasz: ";
    cin >> wywolanie;
    switch( wywolanie )
    {
    case "tak":
        cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl;
       
    case "nie":
        cout << "To nie. Laski bez xD" << endl;
        getch();
    }
    if( wywolanie == "tak" )
    {
        do
        {
            cout << "A moze chcesz jeszcze raz wywolac funkcje? " << endl;
            cout << "Jesli chcesz to napisz T, jesli napiszesz N to program konczy dzialanie: " << endl;
            cin >> wywolanie_ponowne;
            switch( wywolanie_ponowne )
            {
            case "TAK":
                cout << "Ponownie wylosowana liczba to: " << funkcja_losujaca() << endl;
               
            case "NIE":
                cout << "W takim razie dziekuje" << endl;
                getch();
            }
           
           
        } while( wywolanie_ponowne == "NIE" );
       
    }
    return 0;
}

D:\C++\Prace domowe.cpp||In function 'int main()':|
D:\C++\Prace domowe.cpp|29|error: switch quantity not an integer|
D:\C++\Prace domowe.cpp|45|error: switch quantity not an integer|
||=== Build finished: 2 errors, 0 warnings ===|

Lecz w konsoli wypiera mi non stop te bledy:

@DejaVu kurde wiem co miales na mysli dobry programista to taki ktory stosuje metode prob i bledow =)
P-59232
Marcinowy
» 2012-06-26 23:38:31
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "time.h"
#include "cstdlib"
using namespace std;


int funkcja_losujaca()
{
    int losowanie_liczby;
    losowanie_liczby =( rand() % 60 ) + 50;
    return losowanie_liczby;
}



int main()
{
    srand( time( NULL ) );
    string wyw, wyw2;
    cout << "Liczba zostala juz wylosowana" << endl;
    cout << "Czy chcesz wywolac funkcje?\nNapisz tak lub nie: " << endl;
    cout << "Wybierasz: ";
    cin >> wyw;
    switch( wyw )
    {
    case "tak":
        cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl;
       
    case "nie":
        cout << "To nie. Laski bez xD" << endl;
        getch();
    }
    if( wyw == "tak" )
    {
        do
        {
            cout << "A moze chcesz jeszcze raz wywolac funkcje? " << endl;
            cout << "Jesli chcesz to napisz T, jesli napiszesz N to program konczy dzialanie: " << endl;
            cin >> wyw2;
            switch( wyw2 )
            {
            case "TAK":
                cout << "Ponownie wylosowana liczba to: " << funkcja_losujaca() << endl;
               
            case "NIE":
                cout << "W takim razie dziekuje" << endl;
                getch();
            }
           
           
        } while( wyw2 == "NIE" );
       
    }
    return 0;
}
P-59233
DejaVu
» 2012-06-26 23:41:15
Oba rozwiązania są niepoprawne i oba są niepoprawne z tego samego powodu. Ponadto wyjaśnienie znajduje się w rozdziale do którego dałem wcześniej linka.

/edit:
W przedstawionym switch-u popełnione są wszystkie możliwe błędy :P
P-59235
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona