方案一:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int main (void)
{
int i,n,j,temp;
printf("Enter a number n : ");
scanf("%i",&n);
int a[n];
srand((unsigned)time(NULL));
for (i=0;i<n;i++)
a[i]=rand()%100+1;
for (i=0;i<n;i++)
printf("%4i",a[i]);
printf("\n");
for (i=0;i<n;i++)
{
for (j=i;j<n-1;j++)
{
if (a[i]>a[j+1])
{
temp = a[i];
a[i] = a[j+1];
a[j+1] = temp;
}
}
}
for (i=0;i<n;i++)
printf("%4i",a[i]);
printf("\n ");
return 0;
}
方案二:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int *bubble (int *a,int n)
{
int i,j,temp;
for (i=0;i<n;i++)
{
for (j=i;j<n-1;j++)
{
if (a[i] > a[j+1])
swap( &a[i],&a[j+1]);
}
}
}
int swap ( int *a, int *b)
{
int temp;
if (*a > *b)
{
temp = *a;
*a = *b;
*b = temp;
}
}
int main (void)
{
int i , n;
printf("Enter a number n " );
scanf("%i",&n);
int a[n];
srand((unsigned)time(NULL));
for (i=0;i<n;i++)
a[i]=rand()%100+1;
for (i=0;i<n;i++)
printf("%4i",a[i]);
printf("\n");
bubble(a,n);
for (i=0;i<n;i++)
printf("%4i",a[i]);
printf("\n");
return 0;
}
测试:
[root@localhost Gcc]# ./a.out
Enter a number n 10
22 47 31 77 42 91 65 13 45 16
13 16 22 31 42 45 47 65 77 91
[root@localhost Gcc]# ./a.out
Enter a number n 15
24 68 49 12 14 65 34 73 67 79 14 73 16 10 54
10 12 14 14 16 24 34 49 54 65 67 68 73 73 79