// Program 3.11 A calculator
#include<stdio.h>
int main()
{
/*创建并输入算式*/
double number1 = 0.0; //first operand value a decimal number
double number2 = 0.0; //Second operand value a decimal number
char operation = 0; //Operation - must be +-,*./,or %
start:
printf("\nEnter the calculation\n");
scanf("%lf %c %lf",&number1,&operation,&number2);
/*检查输入是否正确*/
switch(operation)
{
case '+': //No checks necessary for add
printf("= %lf\n",number1 + number2);
break;
case '-': //No checks necessary for subtract
printf("= %lf\n",number1 - number2);
break;
case '*': //No checks necessary for multiply
printf("= %lf\n",number1 * number2);
break;
case '/': //Check second oprand for zero
if(number2 == 0)
printf("\n\n\aDivision by zero error!\n");
else
printf("= %lf\n",number1 / number2);
break;
case '%': //Check second oprand for zero
if((long)number2 == 0)
printf("\n\n\aDivision by zero error!\n");
else
printf("= %lf\n",(long)number1 % (long)number2);
break;
default : //Operation is invalid if we get to here
printf("\n\n\a Illegal operation");
break;
}
char answer ='0';
printf("\n Do you want to do another calculation? (y or n):\n");
scanf(" %c", &answer);
/************************************************
写成这样:
scanf("%c",&answer);
在控制字符串前删一个空格为什么就不行呢?
********************************************* */
if(answer == 'y' || answer == 'Y')
goto start ;
return 0;
}
MadMarical