14 svar
599 visningar
Alan123 är nöjd med hjälpen
Alan123 278 – Fd. Medlem
Postad: 22 apr 2017 20:18

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);
}
}

Henrik Eriksson 1405 – Fd. Medlem
Postad: 22 apr 2017 20:25 Redigerad: 22 apr 2017 20:37

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.

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 02:57

Det står så här: error: expected identifier or ‘(’ before ‘{’ token
int min_funktion(int x, int y); {

Bubo Online 6990
Postad: 23 apr 2017 09:14 Redigerad: 23 apr 2017 09:14

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...

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 13:32

Ok, men den skriver inte ut något i alla fall, vet någon varför?

Yngve 37853 – Livehjälpare
Postad: 23 apr 2017 15:50

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?

Henrik Eriksson 1405 – Fd. Medlem
Postad: 23 apr 2017 16:33

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.

Bubo Online 6990
Postad: 23 apr 2017 16:49

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.

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 17:02

Japp de gick bra! Tackar! :D

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 17:03

Men hur gör man om man ska returnera det största talet. alltså inte skriva ut det?

Bubo Online 6990
Postad: 23 apr 2017 17:08

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?

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 17:26

så if x=y returnera inget?

Yngve 37853 – Livehjälpare
Postad: 23 apr 2017 18:16

Om talen är lika så kan du returnera vilket som helst av dem.

Du bör döpa funktionen till ngt annat dock.

Bubo Online 6990
Postad: 23 apr 2017 18:20

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.

Alan123 278 – Fd. Medlem
Postad: 23 apr 2017 18:43

Ja ok. Om de är lika så returnera vilket som.

Svara Avbryt
Close