با سلام یک برنامه هست که وقتی بهش عدد میدی اونو به حروف تبدیل میکنه.سورس:
خوب در خط اول اگر clrscrبراشREنزاریم چه مشکلی پیش میاد؟کارREچیه؟
این قسمت :
مگه برای پیدا کردن تعداد اعداد حروف نست !خوب چه ربطی بهاین برنامهی ما داره و همچنین چرا نبایدy[i2]==13نباشه؟
در چه موقه یی از دستورregisterاستفاده میشه و چرا بعضی وقت ها به صورت:register intوبعضی وقت ها دیگهintشو نمی نویسن؟
کار این قسمت رو هم متوجه نمیشم:
که بعدش میاد i---رومیزنه.
دوباره ازین دستور مشابه استفاده کرده:
این قسمت هارو هم متوجه نمیشم:
وسوال آخر اینکه چرا وقتی برنامه رو کامپایل میکنی بعد ار یکبار اجرا دیگه بر نمیگرده یعنی بازم میتونی عدد بدی.
خیلی ممنون
بــــدرود
کد:
#include <iostream.h>
#include <conio.h>
int main()
{
RE:clrscr();
int s=0,i2=0,x[99];
char y[99]={0};
cout<<"Enter your number:\n";
do
{
i2++;
y[i2]=getche();
}while(y[i2]!=13);
i2--;
for(register int i=1;i2>=1;i2--)
{
x[i]=y[i2]-48;
i++;
}
i--;
clrscr();
cout<<"Your number: ";
for(register int i3=i;i3>=1;i3--)
cout<<x[i3];
cout<<endl<<"Result:\n";
for(;i>=1;i--)
{
if(s==1)
{
switch(x[i])
{
case 0:cout<<"";break;
case 1:cout<<"eleven ";break;
case 2:cout<<"twelve ";break;
case 3:cout<<"thirteen ";break;
case 4:cout<<"fourteen ";break;
case 5:cout<<"fifteen ";break;
case 6:cout<<"sixteen ";break;
case 7:cout<<"seventeen ";break;
case 8:cout<<"eighteen ";break;
case 9:cout<<"nineteen ";break;
}
s=0;
}
else
{
if(i%3==2)
{
switch(x[i])
{
case 0:cout<<"";break;
case 1:s=1;break;
case 2:cout<<"twenty ";break;
case 3:cout<<"thirty ";break;
case 4:cout<<"fourty ";break;
case 5:cout<<"fifty ";break;
case 6:cout<<"sixty ";break;
case 7:cout<<"seventy ";break;
case 8:cout<<"eighty ";break;
case 9:cout<<"ninety ";break;
}
}
else
{
switch(x[i])
{
case 0:cout<<"";break;
case 1:cout<<"one ";break;
case 2:cout<<"two ";break;
case 3:cout<<"three ";break;
case 4:cout<<"four ";break;
case 5:cout<<"five ";break;
case 6:cout<<"six ";break;
case 7:cout<<"seven ";break;
case 8:cout<<"eight ";break;
case 9:cout<<"nine ";break;
default:goto ESC;
}
}
}
if((x[i+2]==0&&x[i]==0)||(x[i]==0&&x[i-2]==0))
{
cout<<"";
}
else
{
if(i%3==0)
cout<<"hundred ";
else if(i==4)
cout<<"thousand ";
else if(i==7)
cout<<"million ";
else if(i==10)
cout<<"billion ";
else if(i==13)
cout<<"trillion ";
else if(i==16)
cout<<"quadrillion ";
else if(i==19)
cout<<"quintillion ";
else if(i==22)
cout<<"***tillion ";
else if(i==25)
cout<<"septillion ";
else if(i==28)
cout<<"octillion ";
else if(i==31)
cout<<"nonillion ";
else if(i==34)
cout<<"decillion ";
else if(i==37)
cout<<"undecillion ";
else if(i==40)
cout<<"duodecillion ";
else if(i==43)
cout<<"tredecillion ";
else if(i==46)
cout<<"quattuordecillion ";
else if(i==49)
cout<<"quindecillion ";
else if(i==52)
cout<<"***decillion ";
else if(i==55)
cout<<"septendecillion ";
else if(i==58)
cout<<"octodecillion ";
else if(i==61)
cout<<"novemdecillion ";
else if(i==64)
cout<<"vigintillion ";
else if(i==67)
cout<<"unvigintillion ";
else if(i==70)
cout<<"duovigintillion ";
else if(i==73)
cout<<"trevigintillion ";
else if(i==76)
cout<<"quattuorvigintillion ";
else if(i==79)
cout<<"quinvigintillion ";
else if(i==82)
cout<<"***vigintillion ";
else if(i==85)
cout<<"septenvigintillion ";
else if(i==88)
cout<<"octovigintillion ";
else if(i==91)
cout<<"novemvigintillion ";
else if(i==94)
cout<<"trigintillion ";
else if(i==97)
cout<<"untrigintillion ";
else if(i==100)
cout<<"duotrigintillion ";
ESC:
}
}
gotoxy(0,22);
cout<<endl<<endl<<"Press any key to translate another number"<<endl;
getch();
goto RE;
}
این قسمت :
کد:
do
{
i2++;
y[i2]=getche();
}while(y[i2]!=13);
در چه موقه یی از دستورregisterاستفاده میشه و چرا بعضی وقت ها به صورت:register intوبعضی وقت ها دیگهintشو نمی نویسن؟
کار این قسمت رو هم متوجه نمیشم:
کد:
for(register int i=1;i2>=1;i2--)
{
x[i]=y[i2]-48;
i++;
}
دوباره ازین دستور مشابه استفاده کرده:
کد:
for(register int i3=i;i3>=1;i3--)
cout<<x[i3];
cout<<endl<<"Result:\n";
کد:
if((x[i+2]==0&&x[i]==0)||(x[i]==0&&x[i-2]==0))
کد:
if(i%3==2)
خیلی ممنون
بــــدرود