C语言 能解释一下吗?

来源:百度知道 编辑:UC知道 时间:2024/09/22 16:01:07
#include<stdio.h>
void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (a<a[j]) {t=a;a=a[j];a[j]=t;}
}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c);
printf("\n");
}

fun是个冒泡排序函数,你可以上网查下"冒泡排序"的原理

程序有问题,改为如下:
#include <stdio.h>

void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{
int t,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (a[i]<a[j]) //比较连续的两个a[i],a[j],大的在前
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6); //对c数组的第五个元素起连续6个元素进行从大到小排序
for (i=0;i<10;i++) //打印排序后的数组
printf("%d,",c[i]);
printf("\n");
}

冒泡排序法,假设有N个数,进行N-1轮排序,每轮N-1次互换

fun函数是运用冒泡排序法进行排序,参数*a指向要排序数组,int n传递数组长度,主函数里面调用fun函数排序,然后对排序后数据进行显示