![](/skin/img/sigline.gif)
好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
我一会用你的思路写个,我这太麻烦
[CODE]
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#define N 10
void main()
{
int *a,i,j;
a=(int *) malloc (N*sizeof(int));
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
if(a[i]==-1)
i--;
}
for(i=0;i<N;i++)
{
if(a[i]%2==0)
{
for(j=0;j<N;j++)
{
if(a[j]%2==0&&a[j]<a[i])
break;
}
if(j==N)
{
printf("%5d",a[i]);
a[i]=-1;
}
}
if(i==N-1)
i=-1;
for(j=0;j<N&&a[j]%2!=0;j++);
if(j==N)
break;
}
for(i=0;i<N;i++)
{
if(a[i]%2!=0&&a[i]!=-1)
{
for(j=0;j<N;j++)
{
if(a[j]%2!=0&&a[j]<a[i]&&a[j]!=-1)
break;
}
if(j==N)
{
printf("%5d",a[i]);
a[i]=-1;
}
}
if(i==N-1)
i=-1;
for(j=0;j<N&&a[j]==-1;j++);
if(j==N)
break;
}
free(a);
getch();
}
[/CODE]
我一会用你的思路写个,我这太麻烦
[CODE]
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#define N 10
void main()
{
int *a,i,j;
a=(int *) malloc (N*sizeof(int));
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
if(a[i]==-1)
i--;
}
for(i=0;i<N;i++)
{
if(a[i]%2==0)
{
for(j=0;j<N;j++)
{
if(a[j]%2==0&&a[j]<a[i])
break;
}
if(j==N)
{
printf("%5d",a[i]);
a[i]=-1;
}
}
if(i==N-1)
i=-1;
for(j=0;j<N&&a[j]%2!=0;j++);
if(j==N)
break;
}
for(i=0;i<N;i++)
{
if(a[i]%2!=0&&a[i]!=-1)
{
for(j=0;j<N;j++)
{
if(a[j]%2!=0&&a[j]<a[i]&&a[j]!=-1)
break;
}
if(j==N)
{
printf("%5d",a[i]);
a[i]=-1;
}
}
if(i==N-1)
i=-1;
for(j=0;j<N&&a[j]==-1;j++);
if(j==N)
break;
}
free(a);
getch();
}
[/CODE]
这个确实有够复杂的,在没有注释的情况下,要看懂还得花费不少时间呢
晚了,先睡觉去
感激版主的帮助
单一数组实现的,这个好些
[CODE]
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#define N 10
void main()
{
int *a,i,j,m,k=0,n=0;
a=(int *) malloc (N*sizeof(int));
for(i=0;i<N;i++)
{
scanf("%d",&m);
if(m%2==0)
{
a[n]=m;
if(i!=0)
{
for(j=n-1;j>=0&&a[j]>m;j--)
a[j+1]=a[j];
a[j+1]=m;
}
n++;
}
else
{
a[N-1-k]=m;
if(i!=0)
{
for(j=N-k;j<N&&a[j]<m;j++)
a[j-1]=a[j];
a[j-1]=m;
}
k++;
}
}
for(i=0;i<N;i++)
printf("%5d",a[i]);
getch();
}
[/CODE]