Klein foutje in een C programma.

ik heb een klein programmaatje gemaakt maar het doet iets verkeert. [code:1:6fafb9912d]#include <stdio.h>

int var1 = 2;
int var2 = 8;
int sum (int var1, int var2);
int vuldig (int var1, int var2);

main()
{
int desom = sum (var1, var2);
printf ("Dit is variabele 1: %i.nDit is variabele 2: %i.n", var1, var2);
printf ("Dit is de som van de 2: %i .n", desom);
printf ("En dit is de vermenigvuldiging: %i.n", vuldig);
}

/* function definition */
int sum (int value1, int value2)
{
return value1 + value2;
}

int vuldig (int value1, int value2)
{
return value1 * value2;
}[/code:1:6fafb9912d]

dat is het programmaatje maar de fout is dat als ik het compileer en uitvoer een verkeerde berekening krijg:

[quote:6fafb9912d]A1:~/Documents/programma’s/zelfgemaakt/cocoa Vikking$ ./test2-1
Dit is variabele 1: 2.
Dit is variabele 2: 8.
Dit is de som van de 2: 10 .
En dit is de vermenigvuldiging: 10888.
A1:~/Documents/programma’s/zelfgemaakt/cocoa Vikking$ [/quote:6fafb9912d]
Sinds wanneer is 8*2 10888???

kan iemand mij helpen het op te lossen (en uit te leggen wat ik fout doe) want ik ben een echt newB op het vlak van C :slight_smile: (gisterenavond begonnen)

Je roept de functie vuldig niet aan. Probeer dit eens: [code:1:e76e9fb206]int devuldig = vuldig(var1, var2); printf ("En dit is de vermenigvuldiging: %i.n", devuldig);[/code:1:e76e9fb206]

  • Koen.

oke nu werkt het maar wat deed ik juist verkeerd?

In deze regel: [code:1:08efd6e010]printf ("En dit is de vermenigvuldiging: %i.n", vuldig);[/code:1:08efd6e010] gebruikte je 'vuldig', ipv 'vuldig(var1, var2)'. Dus de berekening werd nooit uitgevoerd, waardoor er een willekeurig nummer (10888) werd toegekend aan 'vuldig'. Voor de sum berekening deed je het trouwens wel goed.

  • Koen.

aaah ik begrijp het maar waarom moet dat eigenlijk in main() worden gedefinieert?

Main() is het hart van je programma. Alles wat in main() staat wordt daadwerkelijk uitgevoerd. Je kunt wel honderd functies declareren buiten main(), maar als je ze niet aanroept, worden ze nooit uitgevoerd. Ik kan je trouwens aanraden om Xcode te gebruiken, zelfs voor zulke korte programmaatjes. Het mooie is dat je met de debugger regel voor regel het programma kunt doorlopen, zodat je eventuele fouten in de code makkelijker kunt opsporen (alhoewel dat misschien wat te ingewikkeld wordt voor een beginner). Zie ook deze thread: [url]http://forum.macosx.nl/viewtopic.php?t=54348[/url].

  • Koen.

ja xcode is wel goed maar daar kom ik nog wel toe want zonder enige kennis van C kan ik moeilijk een programma schrijven. dit is gewoon een test die ik doe voor een tutorial. een ik C onder de knie heb kan ik aan cocoa beginnen en zo dus ook in xcode

Xcode is niet alleen voor Cocoa. Je kunt er ook 'gewoon' C programma's mee schrijven.