calc.h
#ifndef CALC_H
#define CALC_H
extern float add(float a, float b);
extern float sub(float a, float b);
extern float mul(float a, float b);
extern float div(float a, float b);
#endif
calc.c
#include "calc.h"
float add(float a, float b) { return a + b; }
float sub(float a, float b) { return a - b; }
float mul(float a, float b) { return a * b; }
float div(float a, float b) { return a / b; }
main.c
#include "calc.h"
#include <stdio.h>
int main() {
float a, b, r;
int choice;
while (1) {
printf("1: add, 2: sub, 3: mul, 4: div, 5: exit\n");
printf("Please input choice: ");
if (scanf("%d", &choice) != 1) {
printf("input error\n");
break;
}
if (choice < 1 || choice > 5) {
printf("invalid choice, please try again\n");
continue;
}
if (choice == 5)
break;
printf("Please input two float numbers: ");
if (scanf("%f%f", &a, &b) != 2) {
printf("input error\n");
break;
}
switch (choice) {
case 1:
r = add(a, b);
break;
case 2:
r = sub(a, b);
break;
case 3:
r = mul(a, b);
break;
case 4:
r = div(a, b);
break;
default:
break;
}
printf("result: %f\n", r);
}
return 0;
}
$ gcc -c calc.c -o calc.o
$ gcc -c main.c -o main.o
$ gcc main.o calc.o -o calc
$ ./calc
1: add, 2: sub, 3: mul, 4: div, 5: exit
Please input choice: 1
Please input two float numbers: 2 3
result: 5.000000
1: add, 2: sub, 3: mul, 4: div, 5: exit
Please input choice: 3
Please input two float numbers: 4 5
result: 20.000000
1: add, 2: sub, 3: mul, 4: div, 5: exit
Please input choice: 5