调整数组使奇数(odd)全部都位于偶数(even)前面

来源:互联网 发布:天盾微信恢复软件 编辑:程序博客网 时间:2024/05/21 17:56
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>void first_odd(int *str, int sz){int i = 0;int j = 0;int k = 0;int odd_count = 0;int even_count = 0;int* odd = malloc(sz*sizeof(int));if (odd == NULL){perror("error");}odd=memset(odd, 0, sz*sizeof(int));int* even = malloc(sz*sizeof(int));if (even == NULL){perror("error");}even=memset(even, 0, sz*sizeof(int));for (i = 0; i < sz; i++){if ((str[i] & 1) == 1){odd[j++] = str[i];odd_count++;}else{even[k++] = str[i];even_count++;}}for (i = 0; i < odd_count; i++){str[i] = odd[i];}for (j = 0; i <sz ; j++){str[i++] = even[j];}}void show(int *str, int sz){if (sz > 0){show(str, sz - 1);printf("%d ", *(str + sz-1));}else{str = 0;}}int main(){/*int arr[] = { 1,2,3,4,5,6,7};*/int* arr[10] = { 0 };int i;srand((unsigned)time(NULL));//初始化随机数for (i = 0; i < 10; i++){arr[i] = rand() % 100;}int sz = sizeof(arr) / sizeof(arr[0]);first_odd(arr, sz);show(arr, sz);system("pause");return 0;}

原创粉丝点击