帮我看个c语言编程:输入10个整数,将这10个整数按升序排列输出,并且奇数在前,偶数在后。

程序在此,各位大大看看哪里错了,运行出来偶数没按升序排列,不知道怎么弄了。
#include "stdafx.h"
void main()
{
int t[10],i,n,a=0,b=9,k,m,j,o,p,q;
for(i=0;i<10;i++)

{printf("请输入一个数");
scanf("%d",&n);
if(n%2!=0)
{
t[a]=n;
a++;
}
else
{
t[b]=n;
b--;
}
}
for (i=0;i<a;i++)
{
k=i;
for(j=i+1;j<a;j++)
if(t[k]>t[j])
k=j;
if(k!=i)
{
m=t[i];
t[i]=t[k];
t[k]=m;
}
for (i=9;i>b;i--)
{
o=i;
for(p=i+1;p>b;p--)
if(t[o]<t[p])
o=p;
if(o!=i)
{
q=t[i];
t[i]=t[o];
t[o]=q;
}
}
for (i=0;i<10;i++)
printf("%d\n",t[i]);

}
}

#include "stdafx.h"
void main()
{
int t[10],i,n,a=0,b=9,k,m,j,o,p,q;
for(i=0;i<10;i++)

{printf("请输入一个数");
scanf("%d",&n);
if(n%2!=0)
{
t[a]=n;
a++;
}
else
{
t[b]=n;
b--;
}
}
for (i=0;i<a;i++)
{
k=i;
for(j=i+1;j<a;j++)
if(t[k]>t[j])
k=j;
if(k!=i)
{
m=t[i];
t[i]=t[k];
t[k]=m;
}
for (i=9;i>b;i--)
{
o=i;
for(p=i+1;p>b;p--)
if(t[o]<t[p])
o=p;
if(o!=i)
{
q=t[i];
t[i]=t[o];
t[o]=q;
}
}
}这里差一个
for (i=0;i<10;i++)
printf("%d\n",t[i]);

}
}
貌似你差一个},你试一下,如果不对我再看看,毕竟这个我已经很久没练习了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-29
开始就错了#include"stdio.h"正确的如下
#include"stdio.h"
main()
{
int a[10],i,j,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<100;j++)
for(i=0;i<9;i++)
if(a[i]>a[i+1])
{k=a[i];a[i]=a[i+1];a[i+1]=k;}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
第2个回答  2011-05-29
看不懂
相似回答