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

Ułamek dziesiętny

Ostatnio zmodyfikowano 2016-03-20 21:30
Autor Wiadomość
Skipper11
Temat założony przez niniejszego użytkownika
Ułamek dziesiętny
» 2016-03-20 16:13:06
Witam, robię taką prostą rzecz "Dodaj do klasy CUlamek funkcję float dziesietny() zwracającą ułamek w postaci dziesiętnej".
W klasie dorzuciłam deklarację funkcji. Niżej stworzyłam coś takiego:
C/C++
float CUlamek::dziesietny()
{
    float wynik;
    wynik = l / m;
    return wynik;
}
No i potem w mainie próbuje tak:
C/C++
CUlamek A;
A.pobierz();
A.dziesietny();
printf( A.dziesietny );
No i właśnie coś nie chce wypisać. Ja wiem, że to musi być jakieś nader prosta rzecz, ale jakoś nie mam pomysłu jak to naprawić ;x
P-146279
Gibas11
» 2016-03-20 16:33:01
A co jest nie tak? I jakiego typu masz zmienne
l
 i
m
? Jeżeli
int
, to musisz najpierw przeprowadzić konwersję pierwszej wartości (
l
) na
float
 bo inaczej wynik też będzie typu
int
.

C/C++
wynik = static_cast < float >( l ) / m;
P-146280
Skipper11
Temat założony przez niniejszego użytkownika
» 2016-03-20 18:22:07
wynik = float( l ) / float( m );
Tak to teraz zmienione jest.
A error jest taki  'CUlamek::dziesietny': function call missing argument list; use '&CUlamek::dziesietny' to create a pointer to member.
W sumie próbowałam też zrobić specjalnie metodę w klasie do wypisywania tego, ale coś nie pykło.
P-146287
carlosmay
» 2016-03-20 19:32:06
Jeśli w klasie program nie używa zmiennej wynik, a raczej nie bo jest deklarowana w metodzie można tak:
C/C++
float CUlamek::dziesietny()
{
    return float( l ) / float( m );
}

Brakuje nawiasu:
printf( A.dziesietny() );
P-146292
Skipper11
Temat założony przez niniejszego użytkownika
» 2016-03-20 19:50:27
No i teraz IntelliSense: argument of type "float" is incompatible with parameter of type "const char *"
Error 1 error C2664: 'int printf(const char *,...)' : cannot convert argument 1 from 'float' to 'const char *'
P-146297
pekfos
» 2016-03-20 20:45:53
Niepoprawnie używasz printf().
P-146300
Skipper11
Temat założony przez niniejszego użytkownika
» 2016-03-20 20:53:12
No pewnie trzeba by jakaś metodę do tego zrobić, co?
Ale nie mam zbyt pomysłu na nią.
P-146303
michal11
» 2016-03-20 21:10:13
printf( "%f", A.dziesietny() );
P-146307
« 1 » 2
  Strona 1 z 2 Następna strona