代码如下
#include <bits/stdc++.h>
using namespace std;
int chengfang(int a,int b)
{
int i,sum=1;
if(a==0&&b!=0) return 0;
if(b>0)
{
for(i=1;i<=b;i++)
sum*=a;
}
else{
if(b==0) return 1;
else{
for(i=1;i<=0-b;i++)
sum*=a;
sum=1/sum;
}
}
return sum;
}
int jiecheng(int a)
{
int i,sum=1;
for(i=1;i<=a;i++)
{
sum*=i;
}
return sum;
}
int main()
{
printf("该计算器使用指南:\n");
printf("1.阶乘输入格式:你要运算的数字 6 0\n");
printf("2.其余输入格式:数字 符号 数字\n");
printf("3.计算完一个式子后,默认计算下一个式子\n");
printf("4.加号:1 减号:2 乘号:3 除号:4 乘方:5 阶乘:6\n");
printf("5.不支持无理数运算,乘方的指数需为整数\n");
printf("6.结果不大于2^32-1且不小于-(2^32)-1\n");
printf("7.结果精确到第6位\n");
printf("8.计算器使用例子:计算1+1 式子:1 1 1。计算2^3 式子:2 5 3\n");
printf("________________________________________________________________________________________________________________________");
while(true)
{
float x,y,ans;
char a;
scanf("%f",&x);a=getchar();scanf("%f",&y);
if(x==0&&y==0&&a=='^'||y==0&&a=='/')
printf("False\n");
else
{
if(a=='+') ans=x+y;
if(a=='-') ans=x-y;
if(a=='*') ans=x*y;
if(a=='/') ans=x/y;
if(a=='^') ans=chengfang(x,y);
if(a=='!') ans=jiecheng(x);
printf("%f",ans);
}
}
}
学会调试