Nieuws:

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

Auteur Topic: [C] Twee shorts door elkaar delen ?  (gelezen 882 keer)

Offline Joshua822

  • Lid
[C] Twee shorts door elkaar delen ?
« Gepost op: 2009/11/14, 20:23:42 »
Hallo allemaal.

Vandaag viel mij iets simpels op. Als ik twee variabelen van het type unsigned short wil delen door elkaar gaat er iets mis.

Neem nou het volgende programma :

#include <stdio.h>

int main ()
{
  unsigned short getal1 = 900, getal2;
  printf ( "Geef een nummer voor getal2 : " );
  scanf ( "%h", &getal2 );
  printf ( "%h", getal1 / getal2 );
  getchar ();
  return 0;
}

Dit werkt dus niet. Het werkt echter wel als we alles veranderen ( dus de definitie van de variabelen en de format specifiers ) om met integers te werken.

Dit is natuurlijk erg raar. Als ik dit programma uitvoer, en dan een getal invoer komt er geen output.

Weet iemand waarom ?

Alvast bedankt.

Offline Mossie

  • Lid
Re: [C] Twee shorts door elkaar delen ?
« Reactie #1 Gepost op: 2009/11/15, 09:50:35 »
#include <stdio.h>

int main ()
{
  unsigned short getal1 = 900, getal2;
  printf ( "Geef een nummer voor getal2 : " );
  scanf ( "%hu", &getal2 );
  printf ( "%hu", getal1 / getal2 );
  getchar ();
  return 0;
}

Dit werkt wel. Het verschil zit hem in het inlezen en afdrukken van de variabelen. Jij gebruikt hier %h voor. Dit moet in dit geval %hu zijn (de h geeft de lengte aan (h = short, l = long) en de u geeft het type aan (u = unsigned, d = signed, en nog een aantal, zie man 3 printf).