/*pxyjune*/
/*hpu*/
#include<stdio.h>
#include<math.h>
#include<string.h>
main()
{
char G;
int a;
void vop1();
void vop2(int i,int n);
double vop3();
void vop4();
void vop5();
void vop6();
printf("欢迎进入简单计算器,是否进行运算(Y/N)\n");
scanf("%c",&G);
if(G=='N')
loop: printf("谢谢使用\n");
else if(G=='Y')
{
{
printf("请选择运算类型\n");
printf("(1)进位转化\n(2)四则运算\n(3)指数运算\n(4)阶乘运算\n(5)三角函数运算\n(6)结束运算\n**********************************************\n");
}
while(scanf("%d",&a)!=EOF){
switch(a)
{
case 1: vop1();
printf("*******************谢谢使用*******************\n");break;
case 2: vop3();
printf("*******************谢谢使用*******************\n");break;
case 3: vop4();
printf("*******************谢谢使用*******************\n");break;
case 4: vop5();
printf("*******************谢谢使用*******************\n");break;
case 5: vop6();
printf("*******************谢谢使用*******************\n");break;
case 6:goto loop;
default:printf("你逗我呢?\n\n\n"); printf("**********************************************");
}
printf("\n\n************您还可以重新选择类型**************\n(1)进位转化\n(2)四则运算\n(3)指数运算\n(4)阶乘运算\n(5)三角函数运算\n(6)结束运算\n**********************************************\n\n");
}
}
else
printf("输入错误,谢谢使用(其实你就是在逗我玩!)");
}
/*********************************主函数***********************************/
void vop1() //进位
{
int a,x,n;
printf("几进制数进行转化\n");
scanf("%d",&a);
if(a==10)
{
printf("请输入要转化的数A和转化进制B并以空格分开\n");
scanf("%d%d",&x,&n);
vop2(x,n);
}
else if(a==8)
{
printf("请输入要转化的数A和转化进制B并以空格分开\n");
scanf("%o%d",&x,&n);
vop2(x,n);
}
else if(a==16)
{
printf("请输入要转化的数A和转化进制B并以空格分开\n");
scanf("%x%d",&x,&n);
vop2(x,n);
}
else if(a==2)
printf("请将二进制数按位各位以次*2的n次方后作为十进制数计算\n");
else
printf("这样是没法儿算滴!!!\n");
}
void vop2(int i,int n)
{
char s[128];
itoa(i,s,n);//(要转化的数,转化后的数,进位制)
printf("%s\n",s);
}
double vop3()//四则运算
{
double x,y;
//int g;
char z;
printf("请输入两个数\n");
scanf("%lf%lf",&x,&y);
printf("您想这两个数怎样?\n");
getchar();
scanf("%c",&z);
switch (z){
case '+':printf("%lf\n",x+y);break;
case '-':printf("%lf\n",x-y);break;
case '*':printf("%lf\n",x*y);break;
case '/':printf("%lf\n",x/y);break;
case '%':printf("%d\n",(int)x%(int)y);break;
default:printf("您这样不好吧\n");
}
}
void vop4()//指数运算
{
double x,y,z;
printf("请依次输入底数与指数,中间用空格分开\n");
scanf("%lf%lf",&x,&y);
z=pow(x,y);//可算小数指数,负数指数
printf("%lf\n",z);
}
void vop5()//阶乘运算
{
int x,a,i;
printf("您想求谁的阶乘\n");
scanf("%d",&x);
a=1;
for(i=1;i<=x;i++)
a=a*i;
printf("%d\n",a);
}
void vop6()//三角函数运算
{
double x,s,t,u;//涉及到tan的角度不能取π/2,所以就一下全出了
double cos(double x);
printf("请输入角度(0<=x<=2π)\n");
scanf("%lf",&x);
s=cos(x);
t=sin(x);
u=tan(x);
printf("cosX=%4.2lf\nsinX=%4.2lf\ntanX=%4.2lf\n",s,t,u);
}