[求助] 用冒泡法排序出错
main(){int a[10],i,j,t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(j=0;j<=8;j++)
for(i=0;i<=9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=a[i];}
for(i=0;i<=9;i++)
printf("%2d",a[i]);
}
不知道怎么错的
LZ的算法不是冒泡吧,起不到冒泡的作用,我给你写了一个;测试通过(vc6.0)
#include<stdio.h>
#define SIZE 7
void sort_babble_int(int *array, int size);
int main(void)
{
int i;
int array[SIZE];
printf("input %d nums:\n",SIZE);
for(i=0; i<SIZE; i++)
scanf("%d",&array[i]);
sort_babble_int(array,SIZE);
printf("after sort:\n");
for(i=0; i<SIZE; i++)
printf("%-5d",array[i]);
printf("\n");
return -1;
}
void sort_babble_int(int *array, int size)
{
int i,j;
for(i=size-1; i>0; i--)
for(j=0; j<i; j++)
if(array[j] > array[j+1])
{
array[j] ^= array[j+1];
array[j+1] ^= array[j];
array[j] ^= array[j+1];
}
return;
}