输入N及N格整数(N<20),按奇数升序,偶数降序排列输出
RT。要用数组的吧。函数什么的我都不会。现在只会数组。我写出来的不对。不知道该怎么写
你用的是什么编译器?
我用的是vc6.0
我给你写一个,你看是否可以符合你的要求。
[ 本帖最后由 南国利剑 于 2010-4-24 14:32 编辑 ]
程序代码:
#include<iostream>
using namespace std;
void main()
{
int n,j=0,k=0,t;
cout<<"请输入你要处理的数据的个数:";
cin>>n;
int *a,*js,*os;
a=(int*)new int[n];
js=(int*)new int[n];
os=(int*)new int[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
if(0==a[i]%2)
{
os[j]=a[i];
j++;
}
else
{
js[k]=a[i];
k++;
}
}
for(int m=1;m<j;m++)
{
for(i=0;i<j-1;i++)
if(os[i]<os[i+1])
{t=os[i];os[i]=os[i+1];os[i+1]=t;}
}
for(m=1;m<k;m++)
{
for(i=0;i<k-1;i++)
if(js[i]>js[i+1])
{t=js[i];js[i]=js[i+1];js[i+1]=t;}
}
cout<<"输出奇数:"<<endl;
for(i=0;i<k;i++)
cout<<js[i]<<ends;
cout<<endl;
cout<<"输出偶数:"<<endl;
for(i=0;i<j;i++)
cout<<os[i]<<ends;
delete[]a;
delete[]os;
delete[]js;
system("pause");
}
程序代码:#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n,j=0,k=0,t,m,i;
printf("请输入你要处理的数据的个数:");
scanf("%d",&n);
int *a,*js,*os;
a = (int*)malloc(sizeof(int)*n);//动态分配数组a的空间
js = (int*)malloc(sizeof(int)*n);
os = (int*)malloc(sizeof(int)*n);
for (i=0;i<n;i++) //从键盘输入N个数字,分为奇数和偶数
{
scanf("%d",&a[i]);
if (a[i]%2 == 0)
{
os[j]=a[i];
j++;
}
else
{
js[k]=a[i];
k++;
}
}
for (m=1;m<j;m++)//对偶数降序排列
{
for (i=0;i<j-1;i++)
if (os[i]<os[i+1])
{
t=os[i];
os[i]=os[i+1];
os[i+1]=t;
}
}
for (m=1;m<k;m++)//对奇数升序排列
{
for (i=0;i<k-1;i++)
if (js[i]>js[i+1])
{
t=js[i];
js[i]=js[i+1];
js[i+1]=t;
}
}
printf("输出奇数:");
for (i=0;i<k;i++)
printf("%d\t",js[i]);
printf("\n");
printf("输出偶数:");
for (i=0;i<j;i++)
printf("%d\t",os[i]);
free(a);//释放刚分配a的内存
free(os);;
free(js);;
system("pause");
return 0;
}
根据四楼的代码改为C语言代码!