​c语言,从键盘任意输入10个正整数

编程实现:偶数全部放在数组的前面并且降序排列,基数放在数组的后面并且升序排列
(要求不能另外定义数组,排序必须用函数调用实现)。
如:输入 1 3 6 7 8 19 17 15 10 2
输出 10 8 6 2 1 3 7 15 17 19

第1个回答  2014-04-25
用冒泡法,偶数往左边冒,基数往右边冒而已。
第一轮循环从第一个数据到第九个数,可以将最大的偶数冒到最左边,最大的奇数冒到最右边。
下一轮循环从第二个数到第八个数据,将次大的偶数冒到最左边第二个位置,次大的奇数冒到右边第二个位置。
以此类推,就可以完成啦。但要主要这里面可能存在奇偶数个数不同的情况,需要做一下特殊处理:
如果奇数冒完了,循环的上限就不变了;如果偶数冒完了,循环的下限也就不变了。本回答被网友采纳
第2个回答  2014-04-25
int begin=0;
int end=9;
while(begin<=end){
while(A[begin]%2)

begin++;

while(!(A[end]%2))

end--;

if(begin<end)

swap(A[begin],A[end]);

else{

quicksort(A,0,end,1);

quicksort(A,begin,9,0);
return A;

}
}
快排自己写,不会查下就行,第4个参数0是升序1是降序;本回答被提问者采纳
第3个回答  2014-04-25
你是湖大的吧