C++编程:整数奇偶排序

来源:百度知道 编辑:UC知道 时间:2024/05/23 09:49:44
输入10个整数,彼此以空格分隔
重新排序以后输出(也按空格分隔),要求:
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。
麻烦哪位高手指点下.
不好意思,因为我是在一个在线编程网页上做的题目,但是各个程序我试过了都是WRONG ANSWER...各位高手能不能在那个网页上编下,如果ACCEPTED了再发一下,可以用我的号登陆:用户名00828500 密码和用户名一样,网址是poj.grids.cn,题目编号是3682,还有因为那个网页对格式限制很严格,所以各位高手注意下格式,不要输出字符什么的,只要输出那10个数然后用空格隔开就行了否则通不过...谢谢了!

#include<iostream.h>
void jiangxu(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
}
void shengxu(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i;j<n;j++)
if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int odd[10];//构造一个数组用以存放奇数
int even[10];//构造一个数组用以存放奇数
int *p,*q,i,odds(0),evens(0);//odds,enevs存放a[]中奇数与偶数的个数
p=odd;q=even;//指针指向数组头
for(i=0;i<10;i++)
{
if(a[i]%2){*(p++)=a[i],odds++;} //奇数存入odd[]
else {*(q++)=a[i],evens++;}//偶数放入even[]
}
jiangxu(odd,odds); //奇数降序排序
shengxu(even,evens);//偶数升序排序
cout<<"a:";
for(i=0;i<10;i++)
cout<<a[i];
cout<<endl;
cout<<&q