c语言自定义函数数组排序 c语言用自定义函数排序

编写函数,使用选择排序法对数组进行排序(用C语言)

#include stdio.h

成都创新互联-专业网站定制、快速模板网站建设、高性价比东河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式东河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖东河地区。费用合理售后完善,十载实体公司更值得信赖。

#include stdlib.h

#include time.h

int main(void)

{

int a[10],i,j,tmp,b;

srand(time(NULL));

for(i=0;i10;i++)

a[i]=rand()%100;

for(i=0;i10;i++)

printf("%3d",a[i]);

printf("\n");

for(i=0;i9;i++)

{

tmp=i;

for(j=i+1;j10;j++)

 {

if(a[tmp]a[j])

tmp=j;

 }

if(i!=tmp)

{

b=a[tmp];

a[tmp]=a[i];

a[i]=b;

}

}

for(i=0;i10;i++)

printf("%3d",a[i]);

printf("\n");

return 0;

}

随机产生数组中的元素, 更合理一些。 百科中有各种版本。

C语言编写一个排序函数(对一维数组排序)并在主函数中调用

以下是一个使用C语言编写一维数组排序函数并在主函数中调用的示例代码,采用的是从小到大排序的方式,可以根据需要进行修改:

```c

#include stdio.h

// 排序函数,参数为待排序数组和数组长度

void sort(int arr[], int len) {

int i, j, tmp;

// 冒泡排序

for (i = 0; i len - 1; i++) {

for (j = 0; j len - i - 1; j++) {

if (arr[j] arr[j + 1]) { // 相邻元素比较,如果前面的大于后面的,则交换位置

tmp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = tmp;

}

}

}

}

int main() {

int arr[] = { 3, 1, 5, 7, 2, 4, 6 };

int len = sizeof(arr) / sizeof(int);

int i;

// 输出排序前的数组

printf("排序前:

");

for (i = 0; i len; i++) {

printf("%d ", arr[i]);

}

printf("

");

// 调用排序函数进行排序

sort(arr, len);

// 输出排序后的数组

printf("排序后:

");

for (i = 0; i len; i++) {

printf("%d ", arr[i]);

}

printf("

");

return 0;

}

```

在上面的代码中,我们定义了一个`sort`函数,实现了一维数组排序,并接受待排序数组和数组长度为参数。排序的算法采用的是冒泡排序,每次比较相邻元素的大小并交换它们的位置,直到排序完成。

在主函数中,我们声明了一个待排序的一维数组`arr`,并计算了数组长度。然后,我们输出了排序前的数组,并调用`sort`函数进行排序。最后,我们输出排序后的数组。

需要注意的是,排序函数的实现方式可以有多种,根据实际需求和数据类型的不同,选择合适的排序算法可以提高排序的效率和准确性。在调用排序函数时,需要确保输入的参数正确和合法,避免出现数组越界等错误。

c语言怎么用自定义函数排序

for(i=0;iN;i++)

//开始外层for循环,从i=0,每次加1,直到i=4

{

//外层循环体开始

for(j=0;jN-1-i;j++)

//开始外层for循环,从j=0,每次加1直到i等于外层循环的N-j-1

{

//内层循环体开始

if(stu[j].sumstu[j+1].sum)

//条件判断

{

//如果整形数组前面的数比其后的小,执行以下语句

temp=stu[j+1.sum];

//将比较大的数赋值给temp

stu[j+1].sum=stu[j].sum;

//将比较小的数赋值给数组中后面的变量

stu[j].sum=temp;

//将比较大的数赋值给数组中前面的变量

}for(i=0;iN;i++)printf("%d%d",stu[i].学号,stu[i].姓名);}

C语言,输入一组数进行排序,由大到小排列,用自定义函数实现

给你一个直接插入排序

#include "stdio.h"

void InsertSort(int a[], int left, int right) {//对数组a从下标为left到right区域进行直接插入排序

int i, j, tmp;

for(i = left + 1; i = right; i++) {

for(j = i - 1, tmp = a[i]; j = left tmp a[j]; j++)

a[j + 1] = a[j];

a[j + 1] = tmp;

}

}

void main( ) {

int i, n, a[100];

scanf("%d", n);

for(i = 0; i n; i++)

scanf("%d", a[i]);

InsertSort(a, 0, n - 1);

printf("\n");

for(i = 0; i n; i++) printf("%d\t", a[i]);

}


分享文章:c语言自定义函数数组排序 c语言用自定义函数排序
文章地址:http://scyanting.com/article/ddsdsip.html