#include void calc(int func); int main() { int exit = 1,sw; do{ printf("\nВыберите операцию:\n"); printf("a) сложение\tb) вычитание\n"); printf("c) умножение\td) деление\n"); printf("q) exit\nInput: "); sw = getchar(); switch(sw){ case 'a': calc(1); break; case 'b': calc(2); break; case 'c': calc(3); break; case 'd': calc(4); break; case 'q': exit = 0; break; }}while(exit); return 0; } void calc(int func){ float n1,n2; int x; printf("Введите первое число: "); while(scanf(" %f",&n1)!=1){ printf("То что вы ввели не является числом.\n"); printf("Введите первое число: "); while(getchar()!='\n') continue; } printf("Введите второе число: "); do{ x = (scanf(" %f",&n2) != 1); if(x){ printf("То что вы ввели не является числом.\n"); printf("Введите второе число: "); }else if(n2 == 0&&func==4){ printf("Введите число отличное от 0\n"); printf("Введите второе число: "); x = 1; } while(getchar()!='\n') continue; }while(x); switch(func){ case 1: printf("%f + %f = %f\n",n1,n2,n1+n2); break; case 2: printf("%f - %f = %f\n",n1,n2,n1-n2); break; case 3: printf("%f * %f = %f\n",n1,n2,n1*n2); break; case 4: printf("%f / %f = %f\n",n1,n2,n1/n2); break; } }