/****************************/ /* lab2.c */ /*A Simple Base-7 Calculator*/ /****************************/ /* Adapted from figure 6.8 */ #include #define TRUE 1 #define FALSE !TRUE int main(void){ //declarations with descriptive variable names double operand1, operand2; char operator, ask; int done = FALSE, problemflag = FALSE; float ans // Title Prompt printf("A Simple Base-7 Calculator\n"); do {// Loop while variable done is FALSE //Prompt user for arithmetic expression printf("Enter calculator command in the following form:\n"); printf(" \n"); printf("valid operators are +, -, *, and /.\n"); scanf ("%lf %c %lf", &operand1, &operator, &operand2); // Based on operation, perfom calculation switch(operator) { case '+': ans = operand1 + operand2; break; case '-': ans = operand1 - operand2; break; case '*': ans = operand1 * operand2; break; case '/': if (operand2 == 0.0){ printf("Error. Cannot divide by zero\n"); ans = 0; problemflag = TRUE; } else { ans = operand1/operand2; } break; default: printf("*** Invalid operator. *** \n"); problemflag = TRUE; break; } if (problemflag) { // if there was a problem encountered printf("Arithmatic operation not performed.\n"); problemflag = FALSE; // Our error checking flag reset } else { // no problem encountered, calc present result printf("%f %c %f = %f", operand1, operator, operand2, ans); } printf("\n\n Enter '1' to continue or '0' to quit: "); scanf ("%d", &ask); if (ask == 0) //ask if done done = TRUE; }while (!done); return(0); }