#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
double eval(double a, double b, char c)
{
double r;
switch(c) {
case '+': r = a + b; break;
case '-': r = a - b; break;
case '*': r = a * b; break;
case '/': r = a / b; break;
}
return r;
}
void menu()
{
printf("\t\t\t简单计算机\n\n");
printf("1)一般数据算术\t\t2)单运算符表达式计算\t\t3)退出\n");
printf("C)清屏\t\t\tR)显示此菜单\n");
printf("请选择:>");
}
void docal(int n)
{
double b;
static double r;
char c;
if(n == 2) {
r = 0;
return;
}
printf("请输入数据, 清屏退出模式:>");
while(1) {
c = getchar();
if(toupper(c) == 'C')
return;
else
ungetc(c, stdin);
if(n == 0)
scanf("%c%lf", &c, &b);
else
scanf("%lf%c%lf", &r, &c, &b);
while(getchar() != '\n');
r = eval(r, b, c);
if((int)r == r)
printf("%.0f\n", r);
else
printf("%.3f\n", r);
}
}
void calc()
{
double a, b, r;
char c;
r = 0;
menu();
while(1) {
c = getchar();
while(getchar() != '\n');
switch(c) {
case '1':
docal(0);
ungetc('c', stdin);
break;
case '2':
docal(1);
ungetc('c', stdin);
break;
case '3':
return;
case 'c':
case 'C':
docal(2);
system("cls");
menu();
break;
case 'r':
case 'R':
menu();
break;
default:
printf("输入有误!\n");
}
}
}
int main()
{
calc();
return 0;
}
AAA.rar_visual c
版权申诉
189 浏览量
2022-09-24
01:42:22
上传
评论
收藏 201KB RAR 举报
朱moyimi
- 粉丝: 65
- 资源: 1万+