| /* This is a sample program for the HP WDB debugger. */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| extern int sum(int *, int, int); |
| |
| #define num 10 |
| |
| static int my_list[num] = {3,4,2,0,2,1,8,3,6,7}; |
| |
| void print_average(int *list, int low, int high) |
| { |
| int total = 0, num_elements = 0, average = 0; |
| total = sum(list, low, high); |
| num_elements = high - low; /* note this is an off-by-one bug */ |
| |
| average = total / num_elements; |
| printf("%10.d\n", average); |
| } |
| |
| int main(void) |
| { |
| char c; |
| int first = 0, last = 0; /* stop-in-main */ |
| last = num-1; |
| |
| /* Try two test cases. */ |
| print_average (my_list, first, last); |
| print_average (my_list, first, last - 3); /* stop-at-call */ |
| |
| exit(0); |
| } |