求波峰波谷值

函数功能:从a组数组中提取size_b个连续的波峰波谷值放入b数组中。

 1 #include <stdio.h>
 2 
 3 int a[20] = 
 4 {
 5     43, 57, 43,    91,    96,    81,    13,    99,    44,    46,    43,    88,    24,    81,    20,    77,    66,    22,    75,    90
 6 };
 7 int b[20];
 8 
 9 int maxmin(int a[], int b[], int size_a, int size_b)
10 {
11     int i = 0, j = 0;
12     for (i = 0; i < size_a - 1;)
13     {
14         while (a[i] < a[i + 1])
15         {
16             i++;
17         }
18         b[j++] = a[i];
19 
20         if (j >= size_b)
21             return j;
22         while (a[i] > a[i + 1])
23         {
24             i++;
25         }
26         b[j++] = a[i];
27         if (j >= size_b)
28             return j;
29     }
30 }
31 int main(int argc, char **argv)
32 {
33     int i = 0, j = 0;
34     j = maxmin(a, b, 20, 8);
35     
36     for (i = 0; i < 8; i++)
37     {
38         printf("b[%d] = %d\n", i, b[i]);
39     }
40     printf("\n");
41     
42     return 0;
43 }

结果:

 1 b[0] = 57
 2 b[1] = 43
 3 b[2] = 96
 4 b[3] = 13
 5 b[4] = 99
 6 b[5] = 44
 7 b[6] = 46
 8 b[7] = 43
 9 
10 请按任意键继续. . .

 

 

posted @ 2013-08-25 19:10  ★行云流水★  阅读(796)  评论(0)    收藏  举报