Nieuws:

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

Auteur Topic: [Opgelost][C] Fout gebruik van modulo ( % ) operator  (gelezen 1607 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;
}