70,020
社区成员




#include <stdio.h>
#include <stdlib.h>
float Calculator(float d1, char op, float d2)
{
float r = 0;
switch (op)
{
case '+': r = d1+d2; printf("= %f\n",r); break;
case '-': r = d1-d2; printf("= %f\n",r); break;
case '*': r = d1*d2; printf("= %f\n",r); break;
case '/': if (d2 != 0) {r = d1/d2; printf("= %f\n",r);}
else printf("除数不能为0\n");
break;
default : printf("操作符有误\n");
}
return r;
}
void Headings()
{
printf("************************************\n");
printf("* 多功能计算器 *\n");
printf("* [计算:按s] [退出:按x] [清屏:按c] *\n");
printf("* [将上一结果作为第一运算数: 按a] *\n");
printf("************************************\n");
}
int main(int argc, char *argv[])
{
char Operator,Flag = 'Y';
float Result = 0, Data_1, Data_2;
while (1)
{
Headings();
Flag = getch();
fflush(stdin);
if (Flag == 'x') break;
else if(Flag == 'c') system("CLS");
else if (Flag == 's')
{
printf("请输入数据(例如输入3+5将输出8):\n");
scanf("%f%c%f",&Data_1,&Operator,&Data_2);
Result = Calculator(Data_1,Operator,Data_2);
}
else if(Flag == 'a')
{
printf("上一结果为%f\n",Result);
printf("请输入数据(例如输入+5将输出%f):\n",Result+5);
scanf("%c%f",&Operator,&Data_2);
Result = Calculator(Result,Operator,Data_2);
}
}
return 0;
}