Sams Teach Yourself C in 21 Days

(singke) #1
16: for (;;)
17: {
18: puts(“\nEnter an integer between 1 and 10, 0 to exit: “);
19: scanf(“%d”, &nbr);
20:
21: if (nbr == 0)
22: break;
23: func1(nbr);
24: }
25: return 0;
26: }
27:
28: void func1(int val)
29: {
30: /* The pointer to function. */
31:
32: void (*ptr)(void);
33:
34: if (val == 1)
35: ptr = one;
36: else if (val == 2)
37: ptr = two;
38: else
39: ptr = other;
40:
41: ptr();
42: }
43:
44: void one(void)
45: {
46: puts(“You entered 1.”);
47: }
48:
49: void two(void)
50: {
51: puts(“You entered 2.”);
52: }
53:
54: void other(void)
55: {
56: puts(“You entered something other than 1 or 2.”);
57: }

Enter an integer between 1 and 10, 0 to exit:
2
You entered 2.
Enter an integer between 1 and 10, 0 to exit:
9

410 Day 15

LISTING15.9 continued

INPUT/
OUTPUT

25 448201x-CH15 8/13/02 11:13 AM Page 410

Free download pdf