for(j=i+1;j<n;j++)这里应该是小于n-1的吧?虽然在这里影响不大,但越界访问总是很危险的吧!用你的算法把最后一个数后面不用“,”还是比较难的呢?为什么不先把所有的偶数找出来再排序呢?然后八最后一个偶数单独输出
就按你的先排顺序再找偶数
#include <stdio.h>
main()
{
int n,a[100],i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)/*第n-1次不比较*/
for(j=i+1;j<n;j++)
{
if(a[j]<a[i])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
for(i=0;i<n;i++)
{
if(a[i]%2==0)
printf("%d,",a[i]);
}
}
告诉你个问题,就是1.scanf输入非字符时遇空格结束,所以你爱怎么样就怎么样,打空格结束可以,但最后要打回车;
2.看见那个大括号没?,不加就会再来一次scanf的,最后一次判断返回流程图上边,不加就会遇到scanf的,这个是scanf的隐蔽性问题,自己去领悟吧.加那个大括号就是先遇到"{",然后就判断是语句的开段,就跳出,但是你直接来个scanf就先碰到这个家伙,然后由于他的粘带性就把你拉了进去,不干也得干啊,真是跳进黄河也洗不清.....郁闷吧.
以上个人观点若有问题望高手们斧正.......!
-------------------------------------------------
我是菜鸟我怕谁?