让数组的最前最小,最后最大
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
1 #include <stdio.h>
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<arr_end; 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; p<array+10; p++)
73 printf("%d,",*p);
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<arr_end; 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; p<array+10; p++)
73 printf("%d,",*p);
74 }

浙公网安备 33010602011771号