/********************************************************* * From C PROGRAMMING: A MODERN APPROACH, Second Edition * * By K. N. King * * Copyright (c) 2008, 1996 W. W. Norton & Company, Inc. * * All rights reserved. * * This program may be freely distributed for class use, * * provided that this copyright notice is retained. * *********************************************************/ /* tabulate.c (Chapter 17, page 444) */ /* Tabulates values of trigonometric functions */ #include #include void tabulate(double (*f)(double), double first, double last, double incr); int main(void) { double final, increment, initial; printf("Enter initial value: "); scanf("%lf", &initial); printf("Enter final value: "); scanf("%lf", &final); printf("Enter increment: "); scanf("%lf", &increment); printf("\n x cos(x)" "\n ------- -------\n"); tabulate(cos, initial, final, increment); printf("\n x sin(x)" "\n ------- -------\n"); tabulate(sin, initial, final, increment); printf("\n x tan(x)" "\n ------- -------\n"); tabulate(tan, initial, final, increment); return 0; } void tabulate(double (*f)(double), double first, double last, double incr) { double x; int i, num_intervals; num_intervals = ceil((last - first) / incr); for (i = 0; i <= num_intervals; i++) { x = first + i * incr; printf("%10.5f %10.5f\n", x, (*f)(x)); } }