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