让数组的最前最小,最后最大

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

 

 1 #include 
 2 
 3  // 要用到的函数的声明
 4  void input( int number[]);
 5  void max_min( int array[]);
 6  void output( int array[]);
 7 
 8  int main()
 9 {
10      int number[ 12];
11 
12     input(number);
13     max_min(number);
14     output(number);
15 
16      return  0;
17 }
18 
19  // 输入数组数据
20  void input( int number[])
21 {
22      int i;
23      for(i= 0; i< 10; i++)
24     scanf( " %d, ",&number[i]);
25      // scanf("%d",&number[9]);
26  }
27 
28  // 找到最大最小,并且交换数组里的元素。
29  void max_min( int array[])
30 {
31      int *max,*min,k,l;
32      int *p,*arr_end;
33 
34     arr_end=array+ 10;
35     max=min=array;
36 
37      // 只用一次遍历,就可以找到最大最小
38       for(p=array+ 1; p 39     {
40          if(*p>*max)
41             max=p;
42 
43          else  if(*p<*min)
44             min=p;
45     }
46 
47      // 已经找到 最大k,最小l, 保存起来。
48      k=*max;
49     l=*min;
50     *p=array[ 0];
51 
52      // 让最前最小,最后最大
53      array[ 0]=l;
54 
55      // 这里可能是错的。
56       // l=*p;
57 
58     *min = *p;
59     *p=array[ 9];
60     array[ 9]=k;
61 
62      // 这里是错的。
63       // k=*p;
64      *max = *p;
65      // return;
66  }
67 
68  // 输出数组里的所有的元素。
69  void output( int array[])
70 {
71      int *p;
72      for(p=array; p10; p++)
73     printf( " %d, ",*p);

74 } 

让数组的最前最小,最后最大_第1张图片 

转载于:https://www.cnblogs.com/zhengmian/archive/2012/05/02/array_first_min_last_max.html

你可能感兴趣的:(让数组的最前最小,最后最大)