概述
标题
奇偶排序
描述
定义一个一维整形数组num[20],输入正整数N(N≤20)
代表num的实际元素个数,输入N个任意整数到num中,
编写函数sort()实现排序处理,完成前面奇数,后面偶数,
分别从小到大排序。
使用指针完成地址传递,主函数完成N、数组元素的输入和处理后的数组元素输出。
时间限制
1
内存限制
10000
类别
1
输入说明
输入正整数N(N≤20)和N个任意排列的整形到一维数组num中。
输出说明
格式输出:数据之间空一格,奇数和偶数分界处空三个空格。
输入样例
5
2 3 7 8 4
输出样例
3 7 2 4 8
提示
使用指针作形参,实现地址传递。
前面奇数、后面偶数,分别从小到大排序。
输出数据之间空一格,奇数和偶数分界处空三个空格。
#include <stdio.h>
int sort(int *num,int n)//调用函数进行实现
{
int s=0,i,j,t,left,right;
for(i=0;i<n;i++)
{
if(*(num+i)%2!=0)
{
s++;
}
}//计算奇数的个数
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(*(num+j)>*(num+j+1))
{
t=*(num+j);
*(num+j)=*(num+j+1);
*(num+j+1)=t;
}
}
}//利用冒泡排序将数组从小到大排列
right=n+s;//偶数所在的起始位
left=n;//奇数所在的起始位
for(i=0;i<n;i++)
{
if(*(num+i)%2==0)
{
*(num+right)=*(num+i);
right++;
}
else if(*(num+i)%2==1)
{
*(num+left)=*(num+i);
left++;
}
} //将奇数和偶数分开
return s;//返回奇数的个数,方便打印空格
}
int main()
{
int num[100];
int n,i,s;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}//输入数组
s=sort(num,n);//奇数个数
for(i=n;i<n+n;i++)
{
printf("%d ",num[i]);
if(i==s+n-1)
printf(" ");
}//打印
}
最后
以上就是阳光水杯为你收集整理的XDOJ208,奇偶排序,利用队列思想的全部内容,希望文章能够帮你解决XDOJ208,奇偶排序,利用队列思想所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复