c语言自定义排序函数 C语言自定义函数排序

C语言 自定义函数 链表排序

用插入排序做了一下

创新互联公司主营巍山网站建设的网络公司,主营网站建设方案,成都App定制开发,巍山h5微信小程序定制开发搭建,巍山网站营销推广欢迎巍山等地区企业咨询

#include stdlib.h

typedef struct data

{

int value;

struct data *next;

}data;

int sort_link(data **op_list)

{

data *p1 = NULL; // 当前待排序的节点

data *p2 = NULL; // 待排序链表表头

data *q = NULL; // 有序链表表头

data *t1 = NULL; // 插入节点的前一个节点

data *t2 = NULL; // 插入节点的后一个节点

// 入参检查

if (NULL == op_list || NULL == *op_list)

{

return -1;

}

p1 = *op_list;

while (NULL != p1)

{

p2 = p1-next; // 记录待排序链表下一个节点的位置

p1-next = NULL; // 把当前节点从链表中分离出来

t2 = q;

while (NULL != t2)

{

if (t2-value = p1-value)

{

t1 = t2;

t2 = t2-next;

}

else if (t2 == q)

{

// 插到有序链表的首部

p1-next = q;

q = p1;

break;

}

else

{

// 将当前节点插到t1和t2之间

t1-next = p1;

p1-next = t2;

break;

}

}

if (NULL == t2)

{

if (NULL == t1)

{

// 插入的是第一个节点

q = p1;

}

else

{

// 插到有序链表的末尾

t1-next = p1;

}

}

p1 = p2;

}

*op_list = q;

return 0;

}

// 测试函数入口

int main()

{

data *list = NULL;

data *p = NULL;

int num = 4;

for (; num 0; --num)

{

p = (data*)malloc(sizeof(data));

p-value = num;

p-next = list;

list = p;

}

sort_link(list);

return 0;

}

C语言如何用自定义函数进行字符排序?

void fun(char a[])

{ int k=0,i,j;

char t;

while(a[k])

k++;//计算字符串长度

for(i=0;ik;i++)//冒泡排序

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

if(a[j]a[j+1])

{t=a[j];

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

a[j+1]=t;}

}

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语言怎么用自定义函数排序

我做了一些修改,下面的程序可以运行!你肯定是个初学者,所以不要急慢慢来,把基础的东西一定要搞懂.

我所做的修改主要有3点:

1、自定义函数不能在函数名后加分号(除非在函数说明时)

2、自定义函数如要放在主函数之后,则在主函数中一定要说明int

opp(int

x);

否则一定要放在主函数之前定义

3、printf()是格式化的输出函数,一定要给出输出格式,你的程序中是int型的所以用“%d”

最后建议你找一本c语言的书好好看看!

#include

int

opp(x)

{

int

r;

r=x+1;

return

(r);

}

main()

{

int

a=1,b;

b=opp(a);

printf("%d",b);

}

C语言自定义的排序函数的问题?

老师教的东西没学会呀,要用指针

void atoz(int *a,int *b,int *c) //将输入的数据按由小到大排列

再试一下或者

void atoz(int a,int b,int c) //将输入的数据按由小到大排列

知道数组为什么能行吗?应为数组x[]其实就是一个指针或者理解为地址

C语言编程题,编一个排序函数啊!

用了一个冒泡法,从小到大排序,请参考

#include stdio.h

void Sort(int token[], int count); /*在此处做函数声明最好*/

void main()

{

int i,count,token[100];

printf("请输入要排序数字的个数:\n");

scanf("%d",count); /*从键盘输入要处理的信息*/

printf("请输入要排序的数字:\n");

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

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

Sort(token,count); /*调用排序函数*/

}

void Sort(int token[], int count)

{

int i,j,t,s=0; /*定义t做中间变量*/

for(i=0;icount-1;i++) /*冒泡法排序*/

{

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

if(token[i]token[j])

{

t=token[j];

token[j]=token[i];

token[i]=t;

}

}

printf("排序后的数字为:\n");

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

{

printf("%6d ",token[i]); /*五个一行显示,比较清晰*/

s++;

if(s%5==0)

printf("\n");

}

printf("\n");

}


网页标题:c语言自定义排序函数 C语言自定义函数排序
网站网址:http://scjbc.cn/article/docissh.html

其他资讯