简介:C语言实现奇偶排序(奇数在前,偶数在后) 目的:输入一个数组,使得数组中奇数在前,偶数在后。 代码: #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){int arr[10] = {0};for (int i = 0; i <= 9; i++){scanf("%d", &arr[i]); //输入数组中的各个元素}int left = ...
比较时使用循环位移,把最低位移到最高位,这样所有奇数的最高位是1,所有偶数的最高位是0 然后按照...
=0)//奇数a[odd++]=n;//先进行odd的运用,Odd=0所以a[0]=n;odd+1elsea[even--]=n;//把偶数排到右边}//此时,假如输入10,9,8,7,6,5,4,3,2,1//这个时候,a[0]=9,a[1]=7,a[2]=5,a[3]=3,a[4]=1,odd=5
printf("奇数有%d个\t偶数有%d个\n", s, d);} void SortPrint(int *arr){ int i, j, tmp;printf("排序后的数组为:\n");for(i = 0;i < 10;i++){ for(j = (i - 1);j > 0;j--){ if(arr[j] > arr[j-1]){ tmp = arr[j-1];arr[j-1] = arr[j];arr[j]...
{ int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};int tmp, i, j;for(i=0; i<20; i+=2) //i+=2即可。。同样如果认为a[1]是偶数项的话从a[0]开始 for(j=i; j<20; j+=2)if(arr[i]>arr[j])tmp =arr[i], arr[i]=arr[j]...
#include <stdio.h> #include<string.h> int main() { char a[100]; int i,j,k,len; gets_s(a); len= strlen(a);/*计数器:遇到'\0'停止并返回计数器值*/ f
int max1=0,max2=0,tmp=0;printf("Please input numbers: ");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)for(j=i;j<10;j++)if( a[i]>a[j] ){ tmp =a[i];a[i]=a[j];a[j]=tmp;} for(i=0;i<10;i++)printf("%d ",a[i]);puts("");...
最简单的方法是将列表拆分为奇数和偶数,然后将偶数列表附加到奇数列表。那也会更快 - 它是O(n)而不是O(n log n)。你
修改后的数组应包含所有排序的偶数,后跟反向排序的奇数。 请注意,第一个元素被认为是偶数,因为它的索引为 0。 例子: Input: arr[] = {0, 1, 2, 3, 4, 5, 6, 7} Output: arr[] = {0, 2, 4, 6, 7, 5, 3, 1} Even-place elements : 0, 2, 4, 6 Odd-place elements : 1, 3, ...
c[j+1] = tem;} } } return ;} int main(){ int k;int c[10];int a[5] = {1, 3, 5, 7, 9};int b[5] = {2, 4, 6, 8, 10};combinate(a, b, c); //数组重组 sort(c); // 重组后的数组排序 for(k = 0; k < 10; k++){ printf("%d ", c[k]);}...