写一函数,调整数组使奇数全部都位于偶数前面
Posted cuckoo-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一函数,调整数组使奇数全部都位于偶数前面相关的知识,希望对你有一定的参考价值。
调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
1 #include<stdio.h>
2
3 #define NUM 10
4
5 void Change_num(int* start, int* end)
6 {
7 //开头找偶数,结尾找奇数,找到后两个相互交换位置
8 //1,2,3,4,5,6,7,8,9,5
9 //1, 3, 5, 4, 5, 6, 7, 8, 9, 2
10 while (start < end)
11 {
12 if ((*start) % 2 == 0 )
13 {
14 if ((*end) % 2 != 0)
15 {
16 int temp = 0;
17 temp = *start;
18 *start = *end;
19 *end = temp;
20 }
21 else
22 {
23 --end;
24 }
25 }
26 else
27 {
28 ++start;
29 }
30 }
31 }
32
33 int main()
34 {
35 int arr[NUM];
36 printf("请输入未改变顺序前的10个数:
");
37 for (int i = 0;i < NUM;++i)
38 {
39 scanf("%d", &arr[i]);
40 }
41 printf("
");
42 //改变奇数与偶数的顺序
43 int* start = arr;
44 int* end = arr + sizeof(arr) / sizeof(arr[0]) - 1;
45 printf("改变顺序之后:
");
46 Change_num(start, end);
47 for (int i = 0;i < NUM;++i)
48 {
49 printf("%d ", arr[i]);
50 }
51 return 0;
52 }
以上是关于写一函数,调整数组使奇数全部都位于偶数前面的主要内容,如果未能解决你的问题,请参考以下文章