有100个正整数存放在数组中,试编一函数,要求:
(1)把所有的偶数按从小到大的顺序存放在数组的前半部;
(2)把所有的奇数按从大到小的顺序存放在数组的后半部;
我不懂的都放在注释里了
#include <stdio.h>
#define N 100
int divide(int a[],int n);
void sort(int a[],int n);
int main(){
int a[N];
int n,i,d;
printf("请输入数组个数:"); //这个数组个数是干嘛用的
scanf("%d",&n);
printf("请输入数组:");
for(i=0;i<n;i++){ //这个循环是干嘛用的
scanf("%d",&a[i]);
}
d=divide(a,n);
sort(a,d); //这条语句是什么意思
sort(a+d,n); //这条语句是什么意思
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
int divide(int a[],int n){
int i=0,j=n-1;
int temp;
while(i<j){
while(a[i]%2==0) i++;
while(a[j]%2!=0) j--;
if(i<j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
return i;
}
void sort(int a[],int n){
int i,j,temp;
for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}