A beginner-friendly C project where you’ll learn to build a Calculator using switch and functions.

Covers input handling, operator-based execution, and error fixing - everything explained clearly in Bangla.


First example code

without while
#include <stdio.h>

/// Function prototypes
float add(float a, float b);
float subtract(float a, float b);
float multiply(float a, float b);
float divide(float a, float b);

int main() {

    float a, b, result;
    char op;

    printf("Enter a:");
    scanf("%f",&a);

    printf("Enter b:");
    scanf("%f",&b);

    printf("Choose operation(+, -, *, /):");
    scanf(" %c", &op);


    switch (op) {
        case '+':
           result = add(a, b);
           break;

        case '-':
           result = subtract(a,b);
           break;

        case '*':
           result = multiply(a,b);
           break;

        case '/':
           result = divide(a,b);
           break;
    }

    printf("%.2f %c %.2f = %.2f\n", a, op, b, result);

    return 0;

}

float add(float a, float b){
    return a + b;
}

float subtract(float a, float b){
    return a - b;
}

float multiply(float a, float b){
    return a * b;
}

float divide(float a, float b){
    return a /b;
}

Validate number(float)

    if(scanf("%f",&a) != 1){
        printf("Invalid input\n");
        return 0;
    }

validate operator

    if (op != '+' && op != '-' && op != '*' && op != '/'){
        printf("Invalid operation\n");
        return 0;
    }

Final code

#include <stdio.h>

// Function prototypes
float add(float a, float b);
float subtract(float a, float b);
float multiply(float a, float b);
float divide(float a, float b);

int main() {
  float num1, num2, result;
  char op;

  while (1) {
      // Input numbers
      printf("Enter first number: ");
      scanf("%f", &num1);
      printf("Enter second number: ");
      scanf("%f", &num2);

      // Display menu
      printf("\nChoose operation (+, -, *, /, = to exit): ");
      scanf(" %c", &op); // space before %c to skip whitespace

      if (op == 'q') {
          printf("Exiting program.\n");
          break;
      }

      switch (op) {
          case '+':
              result = add(num1, num2);
              printf("Result: %.2f\n", result);
              break;
          case '-':
              result = subtract(num1, num2);
              printf("Result: %.2f\n", result);
              break;
          case '*':
              result = multiply(num1, num2);
              printf("Result: %.2f\n", result);
              break;
          case '/':
              if (num2 != 0) {
                  result = divide(num1, num2);
                  printf("Result: %.2f\n", result);
              } else {
                  printf("Error: Division by zero!\n");
              }
              break;
          default:
              printf("Invalid operation! Try again.\n");
      }

      printf("\n"); // Extra line before next iteration
  }

  return 0;
}

// Function definitions
float add(float a, float b) { return a + b; }
float subtract(float a, float b) { return a - b; }
float multiply(float a, float b) { return a * b; }
float divide(float a, float b) { return a / b; }