一个数组,编个c程序让奇数在前,奇数和偶数分别有序

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:47:01
main()
{ int a[10],b[10],c[10];int i=0,j=0,k=0,M=0,N=0,m=0,t=0;
printf("\n input a:") ;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if (a[i]%2)
b[j++]=a[i] ;
else c[k++]=a[i];
}
M=j,N=k,i=0;
for(m=0;m<M;m++)
for(j=0;j<M-1;j++)
{if (b[m]<b[j])
t=b[m];b[m]=b[j];b[j]=t;
}
for(m=0;m<N;m++)
for(k=0;k<N-1;k++)
{if (b[m]<b[k])
t=b[m];b[m]=b[k];b[k]=t;
}
for(j=0;j<M;j++)
{a[i++]=b[j];}
for(k=0;j<N;k++)
{a[i++]=b[k];}
for(i=0;i<10;i++)
printf("%d",a[i]);
getch();
}
为什么运行是10个0啊
5555555555555555

其实错误很多

看下面程序把
main()
{ int a[10],b[10],c[10];int i=0,j=0,k=0,M=0,N=0,m=0,t=0;
printf("\n input a:") ;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if (a[i]%2)
b[j++]=a[i] ;
else c[k++]=a[i];
}
M=j,N=k,i=0;
for(m=0;m<M-1;m++)
for(j=m+1;j<M;j++)
{if (b[m]<b[j])
{
t=b[m];b[m]=b[j];b[j]=t;
}
}
for(m=0;m<N-1;m++)
for(k=m+1;k<N;k++)
{if (c[m]<c[k])
{
t=c[m];c[m]=c[k];c[k]=t;
}
}
for(j=0;j<M;j++)
{a[i++]=b[j];}
for(k=0;k<N;k++)
{a[i++]=c[k];}
for(i=0;i<10;i++)
printf("%d ",a[i]);
getchar();

在判断奇偶时
if (a[i]%2)中漏了==
应该为if (a[i]%2==1) //假设数组b放奇数