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: [C] Twee shorts door elkaar delen ?  (gelezen 1284 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).