Write a program which will convert digits/numbers into word in C
#include<stdio.h>
#include<conio.h>
#define MAX 10
int main(void)
{
int i,flag=0,number;
char arr0[10][6]={"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
char arr1[10][8]={"","Ten","Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety"};
char arr2[10][10]={"","Eleven","Tewelv","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
int k[10]={0,0,0,0,0,0,0,0,0,0};
printf("Enter the number: ");
scanf("%d",&number);
printf("\nIn word the number is:");
printf("\n\t\n");
if (number==0)
printf("Zero");
else
{
for(i=4;number>0;i--)
{
k[i]=number%10;
number/=10;
}
for(i=0;i<=4;i++)
{
if (k[i]>0||flag==1)
{
if (i==4)
if(k[3]==1)
printf("%s ",arr2[k[i]]);
else
printf("%s ",arr0[k[i]]);
else if (i==3)
if(k[3]==1 && k[4]>0)
{
}
else
printf("%s ",arr1[k[i]]);
else if (i==2 && k[i]>0)
printf("%s Hundred ",arr0[k[i]]);
else if (i==1)
{
if (k[0]==1)
{
}
else
printf("%s ",arr0[k[i]]);
printf("Thousand ");
}
else if (i==0)
{
if (k[0]==1 && k[1]>0)
printf("%s ",arr2[k[1]]);
else
printf("%s ",arr1[k[i]]);
flag=1;
}
}
}
}
printf("\n\n");
return 0;
}
#include<stdio.h>
#include<conio.h>
#define MAX 10
int main(void)
{
int i,flag=0,number;
char arr0[10][6]={"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
char arr1[10][8]={"","Ten","Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety"};
char arr2[10][10]={"","Eleven","Tewelv","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
int k[10]={0,0,0,0,0,0,0,0,0,0};
printf("Enter the number: ");
scanf("%d",&number);
printf("\nIn word the number is:");
printf("\n\t\n");
if (number==0)
printf("Zero");
else
{
for(i=4;number>0;i--)
{
k[i]=number%10;
number/=10;
}
for(i=0;i<=4;i++)
{
if (k[i]>0||flag==1)
{
if (i==4)
if(k[3]==1)
printf("%s ",arr2[k[i]]);
else
printf("%s ",arr0[k[i]]);
else if (i==3)
if(k[3]==1 && k[4]>0)
{
}
else
printf("%s ",arr1[k[i]]);
else if (i==2 && k[i]>0)
printf("%s Hundred ",arr0[k[i]]);
else if (i==1)
{
if (k[0]==1)
{
}
else
printf("%s ",arr0[k[i]]);
printf("Thousand ");
}
else if (i==0)
{
if (k[0]==1 && k[1]>0)
printf("%s ",arr2[k[1]]);
else
printf("%s ",arr1[k[i]]);
flag=1;
}
}
}
}
printf("\n\n");
return 0;
}
How long this program..But style so excellent
ReplyDelete#include
#include
#include
void main(){
char init[27][12] = {" one "," two "," three ",
" four "," five "," six ",
" seven "," eight "," nine ",
" ten "," eleven "," twelve ",
" thirteen "," fourteen "," fifteen ",
" sixteen "," seventeen "," eighteen ",
" nineteen "," twenty "," thirty ",
" fourty "," fifty "," sixty ",
" seventy "," eight "," ninty "};
char sthou[20]="",shund[20]="",sval1[20]="",sval2[20]="",result[100]="";
int thou=0,hund=0,ten=0,temp=0,val1,val2,num,rem,c=0;
clrscr();
//USING COBOL LOGIC
printf("*****AMOUNT IN WORDS*****\n\n");
printf("Enter any value (upto 4 digits) : ");
scanf("%d",&num);
while(num>0){
rem = num%10;
c++;
if(c<=2)
temp = temp * 10 +rem;
elseif(c==3)
hund = rem;
elseif(c==4)
thou = rem;
num = num/10;
}
while(temp>0){ //as ten contains two digit so reverse it
rem = temp%10;
ten = ten * 10 + rem;
temp= temp/10;
}
if(thou>0){
strcpy(sthou,init[thou-1]);
strcat(sthou," thousand ");
strcat(result,sthou);
}
if(hund>0){
strcpy(shund,init[hund-1]);
strcat(shund," hundred ");
strcat(result,shund);
}
if(ten>0){
if(ten>20){
val1 = ten/10;
val2 = ten%10;
}
if(val1>0){
strcpy(sval1,init[val1+(18-1)]);
strcat(result,sval1);
}
if(val2>0){
strcpy(sval2,init[val2-1]);
strcat(result,sval2);
}
}
printf("\n\nAmount in word is as under \n");
printf("%s",result);
getch();
}
Nice program..I hope you will continue with us
ReplyDelete