Lekcja17[C] problem z błędem too few arguments to function
Ostatnio zmodyfikowano 2014-05-09 17:37
87kelthuzad Temat założony przez niniejszego użytkownika |
Lekcja17[C] problem z błędem too few arguments to function » 2014-05-07 22:49:37 Mam problem z pierwszym zadaniem z tej lekcji: Treść zadania: Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej. A o to program: #include <stdio.h> #include <stdlib.h> #include <time.h> int losowanie(int liczba_losowana) { srand(time(NULL)); liczba_losowana = rand() %10; return liczba_losowana; } int wybieranie(int liczba) { int opcja; liczba = losowanie(); do { puts("Podaj liczbe jaka myslisz ze wylosowan"); scanf("%i",&opcja); if (opcja > 9) puts("Zakres przekroczony"); else if (opcja > liczba) puts("Liczba wieksza od poszukiwanej"); else if (opcja < liczba) puts("Liczba mniejsza od poszukiwanej"); } while (opcja != liczba); return liczba; } int main() { int liczba_wylosowana = wybieranie(); printf("Wylosowana liczna to:%i",liczba_wylosowana); return 0; }
Nie wiem o co chodzi z tym błędem przy kompilacji. |
|
alixir |
» 2014-05-08 07:21:48 Deklaracje obu funkcji posiadają argumenty, ty natomiast wywołujesz funkcję bez przekazywania parametrów. Aczkolwiek argumenty są błędne i powinny zostać usunięte, a ewentualna deklaracja zmiennych powinna nastąpić wewnątrz funkcji. int losowanie() { srand( time( NULL ) ); return rand() % 10; }
int wybieranie() { int opcja; int liczba = losowanie(); ... A ogólnie to program nie ma nic wspólnego z treścią zadania. |
|
87kelthuzad Temat założony przez niniejszego użytkownika |
» 2014-05-09 08:48:35 A możesz mi wyjaśnić o co chodzi w tym zadaniu, bo myślałem że robię dobrze. |
|
alixir |
» 2014-05-09 09:09:05 Zgodnie z tym co pisze w zadaniu masz napisać funkcję. Masz nawet podany przykładowy kod. #include <iostream> int wczytajLiczbe() { }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; } Funkcja ma wczytywać liczbę, aż zostanie podana prawidłowa. Chodzi tu o walidację wprowadzonych danych. Czyli jeśli użytkownik poda literę zamiast liczby, funkcja ma poprosić o ponowne wprowadzenie liczby. Po udanym wczytaniu liczby funkcja ma zwrócić jej wartość. I to tyle. |
|
misiek_82 |
» 2014-05-09 14:58:04 Na tym etapie nie znamy jeszcze porownywania liczb z literami. Wydaje mi sie ze chodzi tu raczej o porownanie ze soba dwoch liczb. W kodzie przykladowym jest polecenie "podaj liczbe" i tu podajesz jakas liczbe, nastepnie te liczbe porownujesz z kolejna wprowadzona liczba dopóki nie beda one zgodne. Ja tak zrozumialem to zadanie. |
|
alixir |
» 2014-05-09 17:37:03 |
|
« 1 » |