/*
Name: C program to convert numbers into words
(Short scale Arabic numbering system i.e. ten, hundred, thousand, million, billion)
Author: Prashant Jain (Google plus: https://plus.google.com/110117450187891236113)
Date: 26-07-13 14:09
Description: This program is written to demonstrate the English Translation of numbers up to 4 billion.
Compiler: Turbo C++ 3.0
*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int skip1=0,skip2=0,skip3=0;
int choice;
unsigned long n;
int p1,p2,p3,p4,p5,p6,q2,r2,s2,q3,r3,s3;
char c[20][10]={"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen" };
char c2[11][10]={"Zero","Ten","Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety","Hundred"};
char string[100]="";
while(1)
{
p1=p2=p3=p4=p5=p6=q2=r2=s2=q3=r3=s3=0;
printf("Enter any number upto 4 billion: ");
scanf("%d",&n);
if(n==0)
printf("zero");
p1=n/1000000000;
n=n%1000000000;
p2=n/1000000;
q2=p2/100;
p2=p2%100;
r2=p2/10;
p2=p2%10;
s2=p2;
n=n%1000000;
p3=n/1000;
q3=p3/100;
p3=p3%100;
r3=p3/10;
p3=p3%10;
s3=p3;
n=n%1000;
p4=n/100;
n=n%100;
p5=n/10;
n=n%10;
p6=n;
if(p1!=0)
{
strcat(string,c[p1]);
strcat(string," Billion ");
}
if(p2!=0){
if(q2!=0){
strcat(string,c[q2]);
strcat(string," hundred ");
if(r2!=0){
if(r2==1){
strcat(string,c[10+s2]);
skip1=1;
}
if(skip1!=1){
strcat(string,c2[r2]);
}
strcat(string," ");
if(skip1!=1){
if(s2!=0){
strcat(string,c[s2]);
}
}
}
else{
strcat(string," ");
if(skip1!=1){
if(s2!=0){
strcat(string,c[s2]);
}
}
}
}
else{
if(r2!=0){
if(r2==1){
strcat(string,c[10+s2]);
skip1=1;
}
if(skip1!=1){
strcat(string,c2[r2]);
}
strcat(string," ");
if(skip1!=1){
if(s2!=0){
strcat(string,c[s2]);
}
}
}
else{
strcat(string," ");
if(s2!=0){
strcat(string,c[s2]);
}
}
}
strcat(string," million ");
}
if(p3!=0){
if(q3!=0){
strcat(string,c[q3]);
strcat(string," hundred ");
if(r3!=0){
if(r3==1){
strcat(string,c[10+s3]);
skip2=1;
}
if(skip2!=1){
strcat(string,c2[r3]);
}
strcat(string," ");
if(skip2!=1){
if(s3!=0){
strcat(string,c[s3]);
}
}
}
else{
if(s3!=0){
strcat(string,c[s3]);
}
}
}
else{
if(r3!=0){
if(r3==1){
strcat(string,c[10+p6]);
skip2=1;
}
if(skip2!=1){
strcat(string,c2[r3]);
}
strcat(string," ");
if(skip2!=1){
if(s3!=0){
strcat(string,c[s3]);
}
}
}
else{
if(s3!=0){
strcat(string,c[s3]);
}
}
}
strcat(string," thousand ");
}
if(p4!=0){
strcat(string,c[p4]);
strcat(string," hundred ");
}
if(p5!=0){
if(p5==1){
strcat(string,c[10+p6]);
skip3=1;
}
if(skip3!=1){
strcat(string,c2[p5]);
}
strcat(string," ");
}
if(skip3!=1){
if(p6!=0) {
strcat(string,c[p6]);
}
}
printf("%s",string);
choice=getch();
if(choice==27) exit(1);
printf("\n\n");
strcpy(string,"");
fflush(stdin);
}
}
This is a try to put the solutions of each possible problem related to C and C++. You can find here C basic lab, C++ basic Lab, Data Structure Lab, DAA Lab, Operating System Lab, Graphics Lab, Compiler Lab, Network Lab, and other problems.
Subscribe to:
Post Comments (Atom)
Hi,
ReplyDeleteHere is problem which I cannot understand and implement, I was trying make it by Python, but it is neccesery make it in C. So the problem is about MAX-SAT Solution, and we should use "Advanced Iterative Method", it could be used simulated anneling, genetic algorithm or even TABU search. If you are interesting, or have free time to help, let me know please =))
Kind Regards