Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Opgelost][C] Fout gebruik van modulo ( % ) operator  (gelezen 1694 keer)

Offline Joshua822

  • Lid
[Opgelost][C] Fout gebruik van modulo ( % ) operator
« Gepost op: 2009/11/29, 16:17:35 »
Hallo allemaal.

Ik probeer de volgende code werkend te krijgen :
#include <stdio.h>

int main ( )
{
  float getal, delers[10];
  unsigned short i, b = 2;
  printf ( "Dit programma zoekt naar de delers van een getal \n" );
  printf ( "Geef een getal in : " );
  scanf ( "%f", &getal );
  delers[0] = getal;
  delers[1] = 1;
  while ( i <= getal )
  {
    if ( ( getal % ( float ) i != 0 )
    {
      delers[b] = i;
      b++;
    }
    i++;
  }
  for ( i = 0; i < 10; i++ )
    printf ( "%5.0f \n", delers[i] );
  getchar ( );
  return 0;
}

Echter, er is een probleem. Gcc klaagt erover dat op lijn 14 de operator '%' niet juist gebruikt wordt. Maar ik zie het probleem niet ?

Alvast bedankt.
« Laatst bewerkt op: 2009/11/30, 16:52:16 door Joshua822 »

Offline Typhoner

  • Lid
    • http://typhoner.blogspot.com/
Re: [C] Fout gebruik van modulo ( % ) operator
« Reactie #1 Gepost op: 2009/11/29, 20:42:27 »
In
Citaat
if ( ( getal % ( float ) i != 0 )

Mis je daar geen )?

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: [C] Fout gebruik van modulo ( % ) operator
« Reactie #2 Gepost op: 2009/11/29, 21:45:15 »
In
Citaat
if ( ( getal % ( float ) i != 0 )

Mis je daar geen )?

Dat niet alleen, maar modulo operator verwacht 2 integers als operanden, want het gaat namelijk om rest bij integer deling
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline Joshua822

  • Lid
Re: [C] Fout gebruik van modulo ( % ) operator
« Reactie #3 Gepost op: 2009/11/30, 16:51:47 »
Hartelijk bedankt voor de informatie !

Het programma zelf werkt nu min of meer perfect.

Hier is de broncode :
#include <stdio.h>

int main ()
{
  unsigned short getal, delers[20], teller = 2, array_teller = 2;
  printf ( "Dit programma geeft de delers van een klein getal. \n" );
  printf ( "Geef een klein getal : " );
  scanf ( "%hu", &getal );
  delers[0] = 1;
  delers[1] = getal;
  printf ( "Delers : \n1\n%hu \n", getal );
  while ( teller < getal )
  {
    if ( getal % teller == 0 )
    {
      delers[array_teller] = teller;
      printf ( "%hu \n", delers[array_teller] );
      array_teller++;
    }
    teller++;
  }
  getchar ();
  return 0;
}