//--------------------------------------------------------------------------- #include // printf, scanf #include // getch #include // Математические функции (sin cos atan exp pow и т.д.) и константа Пи - M_PI //--------------------------------------------------------------------------- double doit(int n, double (*f)(double)){ // второй параметр - указатель на фуккцию (один параметр типа double и результат double) return (*f)(n/180.0*M_PI); // вызов функции (по переданному указателю f на нее) // и перевод n градусов в радианы перед передачей значения параметра в функцию // можно без (*): return f(n/180.0*M_PI); } double my_f(double x){ // функция нужного типа (один параметр типа double и результат double) return x; } void main() { int n; // целое double z1, z2, z3; // вещ.число с плавающей точкой двойной точности printf("n (grad)=?"); scanf("%d", &n); // ввод десятичного(%d) n - в градусах z1=doit(n, &cos); // подставляем разные функции (подходящие по типу параметра и результата) при вызове z2=doit(n, sin); // можно без & z3=doit(n, my_f); // со своей функцией, описанной выше printf("cos(n)=%10.7lf sin(n)=%10.7lf %d grad =%10.7lf rad\n", z1, z2, n, z3); // %lf - LongFloat = double printf("\nPress any key to exit"); getch(); // задержка консольного экрана до нажатия любой клавиши return; //выход из main() } //---------------------------------------------------------------------------