Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

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

Offline Joshua822

  • Documentatieteam
  • Steunpunt: Nee
[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/
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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

  • Documentatieteam
  • Steunpunt: Nee
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;
}