参考完整冒泡排序算法:
#include "stdio.h"
#include<stdlib.h>
//冒泡排序
void choose(int a[],int n){
int i,j,temp;
for(i=1;i<n;i++)
{
for(j=n-1;j>=i;j--)
{
if(a[j]>a[j-1]){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}
//输出
void output(int a[],int n){
int i;
for(i=0;i<n;i++)
printf("%d\t",a[i]);
}
void main()
{
int a[1000];
int b[1000];
int n;
int i;
int index=0;
printf("请输入N:");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]%2==0){
b[index++] = a[i];
}
}
//冒泡排序
choose(b,index);
//输出
output(b,index);
}
你没输出排序的结果
你输出的jh是交换的次数
冒泡排序的外循环是从0到n-1,内循环是从0到n-i-1,你的循环中i和j的范围写错了