
Patrick B. answered 05/27/21
Math and computer tutor/teacher
#include <stdio.h>
#include <string.h>
#define BUFF_MAX (1024)
Num2Text(double x, char * buff)
{
memset(buff,0,BUFF_MAX);
char digitBuff[25];
int thousands = (int) (x/1000);
x = x - 1000*thousands;
int hundreds = (int) (x/100);
x = x - 100*hundreds;
int tens = (int)(x/10);
x = x-10*tens;
int ones = (int)x;
x = x-ones;
if (thousands>0)
{
sprintf(digitBuff,"%d thousand ",thousands);
strcat(buff,digitBuff);
}
if (hundreds>0)
{
sprintf(digitBuff,"%d hundred ",hundreds);
strcat(buff,digitBuff);
}
switch(tens)
{
case 9 : { strcat(buff,"ninety "); break; }
case 8 : { strcat(buff,"eighty "); break; }
case 7 : { strcat(buff,"seventy "); break; }
case 6 : { strcat(buff,"sixty " ); break; }
case 5 : { strcat(buff,"fifty "); break; }
case 4 : { strcat(buff,"fourty "); break; }
case 3 : { strcat(buff,"thirty "); break; }
case 2 : { strcat(buff,"twenty "); break; }
case 1:
{
switch(ones)
{
case 0: strcat(buff,"ten "); break;
case 1: strcat(buff,"eleven "); break;
case 2: strcat(buff,"twelve "); break;
case 3: strcat(buff,"thirteen "); break;
case 4: strcat(buff,"fourteen "); break;
case 5: strcat(buff,"fifteen "); break;
case 6: strcat(buff,"sixteen "); break;
case 7: strcat(buff,"seventeen "); break;
case 8: strcat(buff,"eighteen "); break;
case 9: strcat(buff,"nineteen "); break;
}
}
case 0:
{
switch (ones)
{
case 1: strcat(buff,"one"); break;
case 2: strcat(buff,"two"); break;
case 3: strcat(buff,"three"); break;
case 4: strcat(buff,"four"); break;
case 5: strcat(buff,"five"); break;
case 6: strcat(buff,"six"); break;
case 7: strcat(buff,"seven"); break;
case 8: strcat(buff,"eight"); break;
case 9: strcat(buff,"nine"); break;
}
}
} //switch
if (tens>1)
{
sprintf(digitBuff,"%d",ones);
strcat(buff,digitBuff);
}
}
int main()
{
double x=-1;
int again=1;
char numBuff[BUFF_MAX];
do
{
x=-1;
while (x<0 || x>10000)
{
printf(" INput :>");
scanf("%lf",&x);
}
Num2Text(x,numBuff);
printf("%s \n",numBuff);
again=-1;
while (again!=0 && again!=1)
{
printf(" again ??? 1=YES 0 = NO :>");
scanf("%d",&again);
}
}
while (again==1);
}