Heb een opdracht gekregen om een decimaal getal om te zetten in letters daar bedoel ik mee 2 wordt "twee".
Dit moet ik doen voor getallen van -999999 t/m 999999.
Nu ben ik al een heel eind met de controle en negatief en positief.
kom alleen niet uit het stukje omzetten.
tevens gebruik ik meerdere functies.
dit is wat ik al heb:
#include <stdio.h>
#include "cyferned.h"
static char *CijferTextEentallen[] = { "nul", "een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen" };
void CijferInLetters( int cijfer )
{
if ( cijfer >= 0 && cijfer <= 9 )
{
printf ( CijferTextEentallen [cijfer] );
}
else
{
printf ("Geen Cijfer .. ");
}
}
en
void GetalInLetters( long getal )
{
long tallen;
int cijfer;
int afgedrukt;
if ( getal == 0 )
{
CijferInLetters (0);
}
else
{
if ( getal < 0 )
{
printf ( "min " );
getal = -getal;
}
for ( tallen = 100000, afgedrukt = 0; tallen > 0; tallen /= 1000 )
{
cijfer = ( int ) ( getal / tallen );
if( cijfer > 0 || afgedrukt > 0 )
{
if( afgedrukt > 0 ) putchar( ' ' );
CijferInLetters( cijfer );
afgedrukt++;
}
getal -= cijfer * tallen;
}
}
}
alles voor controle heb ik weg gelaten.
weet niet hoe ik de getallen om moet zetten groter dan 9.
krijg nu alle getallen van 0t/m 9wel goed uitgewerkt
bedankt voor de hulp.
Dit moet ik doen voor getallen van -999999 t/m 999999.
Nu ben ik al een heel eind met de controle en negatief en positief.
kom alleen niet uit het stukje omzetten.
tevens gebruik ik meerdere functies.
dit is wat ik al heb:
#include <stdio.h>
#include "cyferned.h"
static char *CijferTextEentallen[] = { "nul", "een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen" };
void CijferInLetters( int cijfer )
{
if ( cijfer >= 0 && cijfer <= 9 )
{
printf ( CijferTextEentallen [cijfer] );
}
else
{
printf ("Geen Cijfer .. ");
}
}
en
void GetalInLetters( long getal )
{
long tallen;
int cijfer;
int afgedrukt;
if ( getal == 0 )
{
CijferInLetters (0);
}
else
{
if ( getal < 0 )
{
printf ( "min " );
getal = -getal;
}
for ( tallen = 100000, afgedrukt = 0; tallen > 0; tallen /= 1000 )
{
cijfer = ( int ) ( getal / tallen );
if( cijfer > 0 || afgedrukt > 0 )
{
if( afgedrukt > 0 ) putchar( ' ' );
CijferInLetters( cijfer );
afgedrukt++;
}
getal -= cijfer * tallen;
}
}
}
alles voor controle heb ik weg gelaten.
weet niet hoe ik de getallen om moet zetten groter dan 9.
krijg nu alle getallen van 0t/m 9wel goed uitgewerkt
bedankt voor de hulp.