一个计算器程序题,大家共同研究研究,使之更加完善!
/*(1)-4编写一程序实现以下功能: 7分
编写一个简单计算器程序,输入格式为:data1 op data2。
其中data1和data2是参加运算的两个数
(data1、data2为int,但二者相加可能超出int能表示的范围),
op为运算符,它的取值只能是+、-、*、/、%。
考查点:较复杂输入、基本输出,if或switch语句的使用,数据类型的正确使用。
*/
/*
测试数据:
30000+20000=50000
30000-20000=10000
30000*20000=600000000
30000%20000=10000
30000/20000=1.50
30000/0,结果:Error! chu shu wei 0.
*/
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int data1, data2;
long result;
char op;
float res;/*res存除法的结果*/
printf("\nPlease input data1 op data2:");
scanf("%d %c %d", &data1, &op, &data2);
switch (op)
{
case '+':
result = (long)data1 + (long)data2;
break;
case '-':
result = data1 - data2;
break;
case '*':
result = (long)data1 * (long)data2;
break;
case '%':
if (0 == data2)/*注意除数为0的情况*/
{
printf("\nError! chu shu wei 0.");
exit(0);
}
else
{
result = data1 % data2;
}
break;
case '/':
if (0 == data2)/*注意除数为0的情况*/
{
printf("\nError! chu shu wei 0.");
exit(0);
}
else
{
res = (float)data1 / (float)data2;
printf("\n%d%c%d=%.2f", data1, op, data2, res);
return;/*返回,则不再执行最下面的printf语句*/
}
}
printf("\n%d%c%d=%ld", data1, op, data2, result);
}