#c #naukaprogramowania Mam zrobić program z podziałem na parametry. Wykombinowałem takie coś: http://pastebin.com/raw/WcjpyFdq Chcę przypisać funkcję wartości d i potem wyświetlić to d w ostatnim printf. Problem w tym, że nie potrafię tego przypisać literce d. Ktoś pomoże? Bo wiem, że sama funkcja działa, jedyne czego brakuje to właśnie tylko tego wyświetlania funkcji.
@EDIT: Aaa, zapomniałem napisać, że ma to być program, który wyświetla największą liczbę z trzech podanych oczywiście. :D
@Keczonez: ok, wyświetla, ale wywala mi jakieś ogromną liczbę. Wpisuję 1, 2, 3, a wyświetla mi 2293528 na przykład. (╥﹏╥) W sumie to już wczoraj wieczorem z czymś podobnym się zetknąłem i też nie umiałem temu zaradzić.
@Keczonez: po co przez referencje, skoro funkcja ma zwrócić tylko jedną wartość @gooby_pls: W definicji funkcji usuń gwiazdki przez nazwami argumentów. ... d = funkcja(a, b,c); printf("Najwieksza liczba to: %d",d); ...
@gooby_pls: Nie wiem jak jest treść zadania. Na upartego można na adresach i wskaźnikach, tylko tu jest to bardzo na siłę. Do przećwiczenia takich rzeczy dałbym raczej zadanie gdzie to coś ułatwia lub jest wymagane, a nie tylko niepotrzebnie komplikuje i zaciemnia kod.
@gooby_pls: Czyli z tego co rozumiem zadanie nie wymaga użycia wskaźników. Parametry(argumenty) funkcji możesz w tym przypadku przekazać po prostu przez wartość. Gdybyś usunął wszystkie znaki * i & (nie licząc tych w wywołaniu funkcji scanf, która te argumenty przyjmuje właśnie jako adresy, i tych przy porównaniach), to program będzie działał tak samo (z punktu widzenia użytkownika).
@molibdenowy_wojtek: hmm. Tak na chłopski rozum - wskaźniku tutaj musiałbym użyć tylko w przypadku, gdybym w funkcji main do "a" przypisał jakąś liczbę?
@gooby_pls: Tak, gdybyś chciał w funkcji zmienić bezpośrednio wartość "a" to musiałbyś przekazać jej adres tej zmiennej (jest jeszcze przekazanie przez referencję, chociaż nie wiem czy to nie zalicza się już do C++). W każdym razie, gdy przekazujesz przez wartość to funkcja dostaje tylko wartość zmiennych i tworzy sobie kopie na których operuje.
Mam zrobić program z podziałem na parametry. Wykombinowałem takie coś:
http://pastebin.com/raw/WcjpyFdq
Chcę przypisać funkcję wartości d i potem wyświetlić to d w ostatnim printf. Problem w tym, że nie potrafię tego przypisać literce d. Ktoś pomoże? Bo wiem, że sama funkcja działa, jedyne czego brakuje to właśnie tylko tego wyświetlania funkcji.
@EDIT: Aaa, zapomniałem napisać, że ma to być program, który wyświetla największą liczbę z trzech podanych oczywiście. :D
@gooby_pls:
W definicji funkcji usuń gwiazdki przez nazwami argumentów.
...
d = funkcja(a, b,c);
printf("Najwieksza liczba to: %d",d);
...
@molibdenowy_wojtek: Ostateczna wersja jest taka i działa:
http://pastebin.com/raw/LuJNnnik
A te gwiazdki nie są czasem wymagane w zadaniu? :p
W każdym razie, gdy przekazujesz przez wartość to funkcja dostaje tylko wartość zmiennych i tworzy sobie kopie na których operuje.