السلام عليكم ورحمة الله وبركاته
عندي برنامج محيرني وودي تتكرممون وتساعدوني
هو برنامج في ++c
وظيفة البرنامج هي تحويل الارقام الى حروف
يعني اذا ادخلت 1 يحوله الى one
بس المشكلة بهذا البرنامج انه اذا ادخلت مثلا 83 يخرج ارقام كثيرة كانه يعد ياليت تساعدوني وتكتشفوا معي الخطأ
بلييييييييييز
وهذا هو البرنامج
#include<iostream.h>
#include<conio.h>
struct std{ int dig;
char wrd[20];
};
struct std fig[]={{1,"one"},{2,"two"},{3,"three"},{4,"four"},{5,"five"},{6,"six"},
{7,"seven"},{8,"eight"},{9,"nine"},{10,"ten"},{11,"eleven"},{12,"twelve"},{13,"thirteen"},
{14,"fourteen"},{15,"fifteen"},{16,"sixteen"},{17,"seventeen"},{18,"eighteen"},{19,"nineteen"},
{20,"twenty"},{30,"thirty"},{40,"fourty"},{50,"fifty"},{60,"sixty"},{70,"seventy"},{80,"eighty"},
{90,"ninety"}};
int num1[5],i;
void op0(long num)
{
for(i=0;i<20;i++)
if(fig.dig==num)
cout<<fig.wrd;
}
void op1(long num)
{ //num1=num;
num1[0]=num/10;
num1[0]=num1[0]*10;
num1[1]=num%10;
for(i=0;i<27;i++)
{if(fig.dig==num1[0])
cout<<"%s "; cout<<fig.wrd;
}
for(i=0;i<20;i++)
{if(fig.dig==num1[1])
cout<<"%s",fig.wrd;
}
}
void op2(long num)
{
int k,j=num%100;
k=num/100;
for(i=0;i<10;i++)
{if(fig.dig==k)
{ cout<<"%s hundred ",fig.wrd;
if(j>0&&j<20)
op0(num%100);
else
op1(num%100);
}
}
}
void op3(long num)
{
int k,j=num%1000;
k=num/1000;
for(i=0;i<10;i++)
{ if(fig.dig==k)
{ cout<<"%s thousand "; cout<<fig.wrd;
if(j>=1&&j<10)
op0(num%1000);
else if(j>10&&j<100)
op1(num%1000);
else
op2(num%1000);
}
}
}
void op4(long num)
{
int k=num/1000,j;
j=num%1000;
if(k<=20)
{
op0(num/1000);
cout<<" thousand ";
if(j>0&&j<10)
op0(num%1000);
if(j>10&&j<100)
op1(num%1000);
else op2(num%1000);
}
if((k>20)&&(k<100))
{
op1(num/1000);
cout<<" thousand ";
if(j>0&&j<10)
op0(num%1000);
if(j>10&&j<100)
op1(num%1000);
else op2(num%1000);
}
//op2(num%1000);
}
void op5(long num)
{
int k=num/100000;
int j=num%100000;
for(i=0;i<10;i++)
{ if(fig.dig==k)
{ cout<<"%s lakh "; cout<<fig.wrd;
if(j>0&&j<20)
op0(num%100000);
if(j>20&&j<100)
op1(num%100000);
if(j>100&&j<1000)
op2(num%100000);
if(j>1000&&j<10000)
op3(num%100000);
if(j>10000&&j<100000)
op4(num%100000);
}
}
}
void main()
{
long num;
// clrscr();
cout<<"Enter the number\n";
cin>>num;
if(num<=20)
op0(num);
if((num>20)&&(num/100==0))
op1(num);
if(num==100)
cout<<"hundred";
if(num>100&&num<1000)
op2(num);
if(num==1000) cout<<"one thousand";
if(num>1000&&num<10000)
op3(num);
if(num==10000) cout<<"ten thousand";
if(num>10000&&num<100000)
op4(num);
if(num==100000) cout<<"one lakh";
if(num>100000&&num<1000000)
op5(num);
if(num==1000000)
cout<<"One crore";
getch();
}
