Minuscuul foutje in C-programma???

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

  • Aham brahmasmi
  • Registratie: Juni 2002
  • Laatst online: 21-12-2025
Argh :r

Wat doe ik fout in het volgende C-progje:
- in een array staan de cijfers van 5 leerlingen
- met een for-loop moeten leerlingnr 0 t/m 4 en bijbehorend cijfer uit de array gelezen worden
- in dezelfde for loop wordt ook meteen de som van de cijfers berekend om later het gemiddelde te bepalen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
main()
{
 int i, som=0, gem=0, cijfer[5]={8, 8, 6, 4, 7};
 printf("leerlingnr: cijfer:\n");
 for(i=0; i<=4; i=i+1);
  {
   printf("\t%d \t%d\n", i, cijfer[i]);
   som=som+cijfer[i];
  }
 gem=som/5;
 printf("\nHet gemiddelde is: %d", gem);

 scanf("%d", &i);
 return 0;
}

De output is:
code:
1
2
3
4
leerlingnr: cijfer:
        5       2147348480

Het gemiddelde is: 429469696

Ik was eigenlijk bezig met een uitgebreider programmaatje met floats, maar ik heb alles eruit gesloopt, en het loopt stuk op een dodelijk simpele for loop!!??

Dus mijn vraag is: wat gaat hier niet goed? Waarom springt het prog. naar 5, terwijl de for-loop op moet houden bij 4??

Ik compileer het met Dev-C++ 4.0 en de nieuwste 4.9.7.0 (heeft mingw (GCC) 3.2 compiler). In beiden werkt het niet.

[ Voor 10% gewijzigd door Aham brahmasmi op 21-01-2003 01:15 ]


Verwijderd

probeer eens met watch zoveel mogelijk variabelen in de gaten te houden, en dan tracen met f7 oid...
kan je je variabelen stap per stap bekijken... helpt vaak...

suc6

  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 23:50

Klippy

Still Game

C:
1
2
3
4
5
for(i=0; i<5; i++)
{
   printf("\t%d \t%d\n", i, cijfer[i]);
   som+=cijfer[i];
}


Rest is wel erg basic :)

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Er hoort geen ';' achter je for( ; ; )

"He took a duck in the face at two hundred and fifty knots."


  • Marcj
  • Registratie: November 2000
  • Laatst online: 17:34
Thermo man schreef op 21 januari 2003 @ 01:10:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
main()
{
 int i, som=0, gem=0, cijfer[5]={8, 8, 6, 4, 7};
 printf("leerlingnr: cijfer:\n");
 for(i=0; i<=4; i=i+1)  // HIER STOND EEN PUNTKOMMA! ;)
  {
   printf("\t%d \t%d\n", i, cijfer[i]);
   som=som+cijfer[i];
  }
 gem=som/5;
 printf("\nHet gemiddelde is: %d", gem);

 scanf("%d", &i);
 return 0;
}
Door die puntkomma wordt de boel pas geprint als i gelijk aan 5 is geworden ;)

[ Voor 7% gewijzigd door Marcj op 21-01-2003 01:18 . Reden: Grrr, altijd weer te laat :( ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 25-08 16:18

.oisyn

Moderator Devschuur®

Demotivational Speaker

LiquidSilver schreef op 21 januari 2003 @ 01:15:
C:
1
2
3
4
5
for(i=0; i<5; i++)
{
   printf("\t%d \t%d\n", i, cijfer[i]);
   som+=cijfer[i];
}


Rest is wel erg basic :)


Mja, ik denk niet dat de topicstarter het probleem nu zal zien :)
Het probleem zit 'm namelijk in de ; na de for ()

Maar het zijn idd dingen die je zelf op zou moeten kunnen lossen, al helemaal met een debugger. Dit is geen P&W waardig topic

.edit: spuit11 :P

[ Voor 3% gewijzigd door .oisyn op 21-01-2003 01:21 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.