PDA

View Full Version : سوال: تبدیل عدد به حروف



Peyman021
سه شنبه 09 خرداد 1391, 10:50 صبح
سلام دوستان من کدی دارم که عدد رو میگیره به حروف چاپ میکنه کسی هست که تک تک خطاشو تو خوده برنامه بنویسه با این // بعد بهم بده از کتابخونه تا اخرش یعنی یه مرد پیدا میشه در ضمن ما هنوز کتابخونه اس تی دیو اچ و مد.اچ رو نخوندیم یعنی میشه یه جوره خیلی ابتدایی نوشت بدون این 2 تا کتابخونه . استادمون گفته از وکتور استفاده کنین کسی هست کمکم کنه ممنون میشم
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
void print(int);
void print_d(int);
int i=0;
char *y[10]={"Sefr","Yek","Do","Se","Chahar","Panj","Shesh"," Haft","Hasht","No"};
char *d1[10]={"","Yazdah","Davazdah","Sizdah","Chahardah","Pan zdah","Shanzdah","Hefdah","Hejdah","Noozdah"};
char *d2[10]={"","Dah","Bist","Si","Chehel","Panjah","Shast"," Haftad","Hashtad","Navad"};
char *s[10]={"","Sad","Devist","Sisad","Chaharsad","Pansad"," Sheshsad","Haftsad","Hashtsad","Nohsad"};
char *mil[4]={"Milyard","Milioun","Hezar",""};
void main()
{

int n1;
double n;
long int k=1000000000;
cout<<"lotfan yek adad vared konid (Ta 12 ragham):";
cin>>n;

for(i=0;i<=3;i++)
{
n1=int(n/k);
if(n1!=0)
{
print(n1);
n=fmod(n,k);
}
k=k/1000;
}
getch();

}

void print(int n1)
{
int q,r;
q=n1/100;
r=n1%100;
if(q==0)
print_d(r);
else
{
if(r==0)
if(i!=3)
cout<<s[q]<<mil[i]<<" "<<"o"<<" ";
else
cout<<s[q];
else
{
cout<<s[q]<<mil[i]<<" "<<"o"<<" ";
print_d(r);
}

}
}
void print_d(int r)
{
int q1,r1;
q1=r/10;
r1=r%10;
if(q1==0)
if(i!=3)
cout<<y[r1]<<mil[i]<<" "<<"o"<<" ";
else
cout<<y[r1];
else
{

if(r1==0)
if(i!=3)
cout<<d2[q1]<<mil[i]<<" "<<"o"<<" ";
else
cout<<d2[q1];
else if(r>10 && r<20)
if(i!=3)
cout<<d1[r%10]<<mil[i]<<" "<<"o"<<" ";
else
cout<<d1[r%10];
else
if(i!=3)
cout<<d2[q1]<<" "<<"o"<<" "<<y[r1]<<mil[i]<<" "<<"o"<<" ";
else
cout<<d2[q1]<<" "<<"o"<<" "<<y[r1];
}



}

AbbasVB
چهارشنبه 10 خرداد 1391, 18:40 عصر
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main(void)
{
clrscr();
int num,a,e,c,d;
char *prim[10] = {"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
char *seg[10]={"Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
char *ter[10]={"Ten","Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninty"};
char *quarto={"Hundred"};
printf("--------------------------------------------------\n");
printf("-----------Numbers to words translator------------\n");
printf("---------------------------------------------------\n");
do
{
printf("Enter a number between 0 and 999\n");
scanf("%d",&num);
}
while (num<0 ||num>999);
c = (num%1000) - (num%100);
a = (num%100) - (num%10);
e = (num%10);
if(a==0&&e==0&&c==0)
printf("Zero\n");
if(a==0&&e!=0&&c==0)
printf("%s",prim[e-1]);
if(a==10&&e!=0&&c==0)
printf("%s",seg[e-1]);
if((a>10)&&(e)==0&&c==0)
printf("%s",ter[(a/10)-1]);
if((a>10)&&(e)!=0&&c==0)
printf("%s %s",ter[(a/10)-1],prim[e-1]);
if(a==10&&e==0&&c==0)
printf("%s",ter[e]);
if(c!=0&&a==0&&e==0)
printf("%s %s",prim[(c-1)/100],quarto);
if(c!=0&&a==0&&e!=0)
printf("%s %s and %s",prim[(c-1)/100],quarto,prim[e-1]);
if(c!=0&&a!=0&&e!=0)
{
if (a<20)
printf("%s %s and %s",prim[(c-1)/100],quarto,seg[e-1]);
if (a>=20)
printf("%s %s and %s %s",prim[(c-1)/100],quarto,ter[(a-1)/10],prim[e-1]);
}
if(c!=0&&a!=0&&e==0)
printf("%s %s and %s",prim[(c-1)/100],quarto,ter[(a-1)/10]);
getch();
}