Kompileringsfel!
vet någon vad som är fel i den här koden?
#include <stdio.h>
int min_funktion(int x, int y);
int main() {
min_funktion(3,4);
return 0;
}
int min_funktion(int x, int y); {
if (x>y) {
printf("%d",x);
}
else if (x<y) {
printf("%d",y);
}
}
Vad får du för kompileringsfel? Står det möjligen att du har ett semikolon efter (int x, int y). Ta bort det.
Det står så här: error: expected identifier or ‘(’ before ‘{’ token
int min_funktion(int x, int y); {
Men då har ju kompilatorn pekat ut felet exakt. Tyckte du att någon skulle titta på HELA koden i alla fall?
Det finns ingenting framför { Eftersom du avslutade raden med semikolon.
Om du hade testat Henriks förslag hade du nog bara behövt skriva "tack", tror jag...
Ok, men den skriver inte ut något i alla fall, vet någon varför?
Länge sedan man kodade C, men var det inte såå att man även var tvungen att skriva println; för att avsluta raden skriva ut bufferten på stdout?
Hur exekverar du? Det är inget fel på programmet fast man brukar skriva main(void) i stället för main(). Kolla att kompilatorn har skapat en körbar fil.
Kör du den gamla körbara filen? Det är ett ganska vanligt misstag.
Du borde ha fått en ny körbar fil när du ändrade och kompilerade om.
Japp de gick bra! Tackar! :D
Men hur gör man om man ska returnera det största talet. alltså inte skriva ut det?
Byt printf("%d",x); mot return x;
Men jag tror att du måste ta hänsyn till att x och y kan vara lika. Kan man skriva en funktion som kan returnera antingen ett heltal eller ingenting?
så if x=y returnera inget?
Om talen är lika så kan du returnera vilket som helst av dem.
Du bör döpa funktionen till ngt annat dock.
Det är så du har skrivit din min_funktion just nu.
min_funktion(1,42) skriver ut 42.
min_funktion(42,1) skriver ut 42.
min_funktion(42,42) skriver inte ut något alls.
Jag vet inte om man kan få en funktion att returnera värden ibland.
Ja ok. Om de är lika så returnera vilket som.