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

Lekcja17[C] problem z błędem too few arguments to function

Ostatnio zmodyfikowano 2014-05-09 17:37
Autor Wiadomość
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.
P-109463
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.

C/C++
int losowanie()
{
    srand( time( NULL ) );
    return rand() % 10;
}

C/C++
int wybieranie()
{
    int opcja;
    int liczba = losowanie();
    ...

A ogólnie to program nie ma nic wspólnego z treścią zadania.
P-109472
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.
P-109543
alixir
» 2014-05-09 09:09:05
Zgodnie z tym co pisze w zadaniu masz napisać funkcję.
Masz nawet podany przykładowy kod.

C/C++
#include <iostream>
int wczytajLiczbe()
{
    //TODO: tu Twój kod
}

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.
P-109544
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.
P-109566
alixir
» 2014-05-09 17:37:03
Coś mi się wydaje, że walidacja danych była omówiona w lekcji 9 » Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja
P-109573
« 1 »
  Strona 1 z 1