Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Začátečník - Funkce v C

Dobrý den,
v C programovat teprve začínám a peru se tu s problémem, že mam vytvořenou určitou funkci, která mě převádí číslo na čas:

int deleni(int n1, int n2)
{
n2 = cislo/60;
n1 = cislo - (n2*60);
}

... ve funkci main mam potom tuto funkci použitou s tím, že ji chci několikrát použít, pokáždé s jinnými proměnnými , proměnná číslo je globální proměná, kterou později ještě předělám, ted to není podstatné, ve funkci main to mam použito takto:

deleni(min, sekundy);
printf(" %d minut %d sekund \n" , min, sekundy);
.
.
... bohužel program mě vypisuje nuly , proměnné min a sekundy jsem zkoušel delarovat jako globální i jako proměnné funkce main a ani jedno nefungovalo. Zkoušel sem dat to funkce deleni vypis čísel n1 a n1 a obě jsou spočítané správně. Můžete mě někdo prosím poradit co dělám špatně, aby při dosazení jiných proměnných do teto funkce mě to pracovalo s těmito proměnnými ?
Děkuji za odpověď

Předmět Autor Datum
int deleni(int n1, int n2) { min = cislo/60; sekundy = cislo - (n2*60); }
Wikan 11.10.2011 14:59
Wikan
no pravě ja tam jednou třeba potřebuju zadat sekundy jednou minuty atd, a potřebuju aby si to tu pro…
alias0 11.10.2011 15:04
alias0
zakladna chyba je ta, ze funkcia v C nevracia hodnotu do vstupnych argumentov (pokial nejde o odkazy…
wam_Spider007 11.10.2011 16:21
wam_Spider007
to je přesně to co jsem potřeboval, diky za radu :) poslední
alias0 11.10.2011 16:55
alias0

no pravě ja tam jednou třeba potřebuju zadat sekundy jednou minuty atd, a potřebuju aby si to tu proměnou co dam do deleni(x1, x2) tak vždycky ta funkce deleni pocitala misto s tema N tak s tema x ze si to všechny n1 nahradi za x1 a všechny n2 nahradí za x2 a počíta s těmato hodnotama

zakladna chyba je ta, ze funkcia v C nevracia hodnotu do vstupnych argumentov (pokial nejde o odkazy) ale sama vracia jednu navratovu hodnotu.
cize tebe sa mozno v ramci funkcie nastavi premenna minuty a sekundy na nejake hodnoty, ale vonku z funkcie to uz neplati.

skus to takto:

int mins(int n1, int n2)
{
return cislo - (n2*60);
}

int secs(int n1, int n2)
{
return cislo/60;
}

int m1, int s1;
m1=mins(min, sekundy);
s1=secs(min, sekundy);
printf(" %d minut %d sekund \n" , m1, s1);

je to dost zjednodusene, ale pomocou odkazov by to slo lahsie. kedze ale zacinas, mal by si zacat s niecim lahsim.

Zpět do poradny Odpovědět na původní otázku Nahoru