C语言:调整数组使奇数全部都位于偶数前面。
2016-05-30 17:15
483 查看
% 2 == 0) && (i < len)) { i++; } while ((arr[j] % 2 == 1) && (j < len)) { j++; } if (i == len || j == len) return; if (i > j) { tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; tmp = i; i = j; j = tmp; } } } int main() { int arr[] = { 1, 2, 3, 4, 5 }; int len = sizeof(arr) / sizeof(arr[0]); even_old_number(arr, len); int i = 0; for (i = 0; i < len; i++) { printf("%d ]另外,方法2也可以, #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void even_odd(int *arr, int len) { int left = 0; int right = len - 1; while (left < right) { while((left < right) && (arr[left] % 2 == 1)) { left++; } while((left < right) && (arr[right] % 2 != 1)) { right--; } if (left < right) { int tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left++; right--; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0; int len = sizeof(arr) / sizeof(arr[0]); even_odd(arr, len); for (i = 0; i < len; i++) { printf("%d ", arr[i]); } printf("\n"); system("pause"); return 0; }
相关文章推荐
- C语言:模拟实现memmove
- C语言:模拟实现memcpy
- 【笔试题】C语言:模拟实现strcmp
- 【笔试题】C语言:模拟实现strcat
- C语言:模拟实现strcpy
- 【笔试题】C语言:模拟实现strncmp
- 【笔试题】C语言:模拟实现strncat
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- 【面试题】C语言:模拟实现内存放置函数memset()
- 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
- 【指针篇】C语言:指针与数组的区别,数组指针与指针数组的剖析。
- C语言:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中
- C语言:字符数组的内容为;tneduts a ma i;,内容改为i am a student.只能开辟有限个空间
- 【面试常考】C语言:输入:&quot;student a am i&quot;,输出&quot;i am a student,不能使用库函数
- C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出&#39;b&#39;
- 【笔试题】C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出&#39;b&#39;。
- C语言:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。
- C语言:实现一个函数,可以左旋字符串中的k个字符。
- C语言:判断一个字符串是否为另外一个字符串旋转之后的字符串。(左旋右旋、求子串)
- C语言:【面试题】在二维数组中,每行每列都按照递增的顺序排序,判断数组中是否包含一个数。