hobab1987
Member
سلام سلام
اين برنامه رو يه زماني نوشته بودم حالا اومدم يه كوچولو تغييرش دادم تا بهتر بشه اما بدتر شد!!!
وقتي ورودي دريافت مي كنه بيخيال خروجيش ميشه دليلش چي ميتونه باشه؟!!!
اين برنامه رو يه زماني نوشته بودم حالا اومدم يه كوچولو تغييرش دادم تا بهتر بشه اما بدتر شد!!!
وقتي ورودي دريافت مي كنه بيخيال خروجيش ميشه دليلش چي ميتونه باشه؟!!!
کد:
#include <iostream.h>
#include <conio.h>
#include <process.h>
void choice();
int power(int, int);
int fact(int);
int powfact(int, int);
void ret(int);
void quit();
void main()
{
int num, n;
int a, b;
clrscr();
for( ; ; )
{
clrscr();
choice();
gotoxy(30,27);
cin>>num;
switch(num)
{
case 1:
clrscr();
gotoxy(30,15);
cout<<"a=";
cin>>a;
gotoxy(30,17);
cout<<"b=";
cin>>b;
gotoxy(30,19);
cout<<"a^b="<<power(a,b);
break;
case 2:
clrscr();
gotoxy(30,15);
cout<<"n=";
cin>>n;
gotoxy(30,17);
cout<<"n!="<<fact(n);
break;
case 3:
clrscr();
gotoxy(30,15);
cout<<"a=";
cin>>a;
gotoxy(30,17);
cout<<"b=";
cin>>b;
gotoxy(30,19);
cout<<"(a+b)^a/b! = "<<powfact(a,b);
break;
case 4:
clrscr();
gotoxy(30,15);
cout<<"Enter one number to return base 2=";
cin>>a;
gotoxy(30,17);
cout<<"Result=";
ret(a);
break;
case 6:
quit();
}//End switch
}//End for
}//End main
void choice()
{
gotoxy(30,15);
cout<<"1. a^b";
gotoxy(30,17);
cout<<"2. n!";
gotoxy(30,19);
cout<<"3. ((a+b)^a)/b!";
gotoxy(30,21);
cout<<"4. return to base 2";
gotoxy(30,23);
cout<<"5. base 2 return to base 10";
gotoxy(30,25);
cout<<"6. Exit";
}//End choice
int power(int a, int b)
{
int pw=1,i;
for(i=0;i<b;i++)
pw=pw*a;
return pw;
}//End power
int fact(int n)
{
int fc;
if(n==1)
return 1;
else
fc=n*fact(n-1);
return fc;
}//End fact
int powfact(int a, int b)
{
int i,j,s,pw=1,fc=1;
float tmp;
s=a+b;
for(i=0;i<a;i++)
pw=pw*s;
for(j=b;j>0;j--)
fc*=j;
tmp=(float)pw/fc;
return tmp;
}
void ret(int a)
{
int i, j, n, r[20];
for(i=0;a>0;i++)
{
r[i] = a%2;
a = a/2;
}
cout<<a<<" ";
for(j = i ; j > 0 ; j--)
{
cout<<r[i];
cout<<" ";
}
}
void quit()
{
char ans;
clrscr();
gotoxy(26,20);
cout<<"Are you sure to Quite?(Y/N): ";
cin>>ans;
if (ans == 'y' || ans == 'Y')
exit(0);
else
return;
}