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

Funkcje - pierwsze starcie... z pracą domową...

Ostatnio zmodyfikowano 2011-04-25 17:10
Autor Wiadomość
MusicWarrior
Temat założony przez niniejszego użytkownika
Funkcje - pierwsze starcie... z pracą domową...
» 2011-04-25 11:25:26
Większość pewnie się domyśla, o co mi chodzi...

"Napisz funkcję, która losuje liczbę z przedziału od 50 do 60 włącznie. Wywołaj funkcję kilka razy (wypisz wylosowane wartości na ekran) w celu przetestowania czy działa ona poprawnie."

A oto mój kod:
C/C++
#include <iostream>
#include <conio.h>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
int losuj()
{
    srand( time( NULL ) );
    cout << "LOSUJEMY!... Wylosowana liczba to... " <<( rand() % 61 ) + 50 << endl;
    return 0;
   
}

int main()
{
    srand( time( NULL ) );
    string zmienna;
    cout << "Napisz 'LOSUJ' aby wylosowac liczbe... " << endl;
    cin >> zmienna;
   
    switch( zmienna )
    {
    case 'LOSUJ':
        losuj();
        break;
       
    case 'losuj':
        losuj();
        break;
       
    case 'Losuj':
        losuj();
        break;
        default:
        cout << "LOSUJ TROLLU LOSUJ." << endl;
    }
    getch();
}

I dla ułatwienia zadania, błędy jakie wywala mi kompilator, błędy których nie potrafię rozkminić...


1>------ Build started: Project: PUSTY, Configuration: Release Win32 ------
1>  file.cpp
1>file.cpp(9): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data
1>file.cpp(17): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data
1>file.cpp(22): error C2450: switch expression of type 'std::string' is illegal
1>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>file.cpp(24): error C2015: too many characters in constant
1>file.cpp(28): error C2015: too many characters in constant
1>file.cpp(28): error C2196: case value '0' already used
1>file.cpp(32): error C2015: too many characters in constant
1>file.cpp(32): error C2196: case value '0' already used
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Oczywiście, chodzi mi o to, co jest źle i dlaczego?...
P-31921
greenhouse
» 2011-04-25 11:40:58
jest dużo błędów, to co mi się rzuca w oczy

funkcja rand - rand() % 11 + 50 (losujesz z 11 liczb, a nie z 61
funkcja srand wystarczy tylko raz w int main, mozesz skasowac z funkcji losowania

poza tym funkcja switch jest bez sensu, bo to nie jest funkcja, która wywołuje kilka razy to samo zjawisko.

Do tego służy do... while, a switch możesz użyć jako mini menu (Czy chcesz wylosować liczbę 1 - tak, 0 - nie) i warunek zakończenia do...while (zmienna != 0)

Nie jestem znawcą tematu, więc mogę dość chaotycznie pisać, ale mam nadzieję, że rozumiesz.

P-31922
MusicWarrior
Temat założony przez niniejszego użytkownika
» 2011-04-25 17:10:36
Dzięki! Jakby kogoś interesowało jak to skleiłem, choć nie do końca działa poprawnie (kiedy wpisujesz liczbę ujemną) to tutaj macie linka: http://wklej.org/id/518717/
P-31946
« 1 »
  Strona 1 z 1