输入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语言代码!