Writing numbers in letters is there a easier way ?
Code:
#include<stdio.h>
#include<string.h>
#define a 9
#define b 9
#define c 3
int main()
{
char *num[]={"","one","two","three","four","five","six","seven","eight","nine"};
char *num10[]={"","ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
char *num100[]={"","hundred","thousand","million"};
longint n;
printf("type a number to see its spelling:");
scanf("%li",&n);
if (n>=0&&n<10) {
printf("%s",num[n]);
}
else if (n>=10&&n<100){
if (n%10==0)
printf("%s",num10[(n/10)]);
else if(n%10!=0)
printf("%s%s",num10[(n/10)],num[n%10]);
}
else if (n>=100&&n<1000){
if (n%100==0)
printf("%s%s",num[n/100],num100[1]);
else if (n%100!=0)
printf("%s%s%s%s",num[n/100],num100[1],num10[((n%100)/10)],num[(n%100)%10]);
}
else if (n>=1000&&n<10000){
if (n%1000==0)
printf("%s%s",num[n/1000],num100[2]);
else if (n!=0&&(n%1000)>99)
printf("%s%s%s%s%s%s",num[n/1000],num100[2],num[(n%1000)/100],num100[1],num10[(((n%1000)%100)/10)],num[((n%1000)%100)%10]);
else if (n!=0&&(n%1000)<99)
printf("%s%s%s%s%s",num[n/1000],num100[2],num[(n%1000)/100],num10[(((n%1000)%100)/10)],num[((n%1000)%100)%10]);
}
}
In practice section there was a challenge to print up numbers in letters up to billion including negatives I didn't look at the solution and came up with this but it is getting difficult after this point and when I checked the solution I didn't understand so I thought maybe someone give me an idea