匿名用户

1级

2012-12-11 回答

#include

#include

#include

#include

#define N 20000

struct Student

{

int score;

struct Student *next;

};

//创建单向键表,返回链表表头head

struct Student *CreatLink(struct Student *head ,int n)

{

int i;

struct Student *p1,*p2;

head=p1=(struct Student *)malloc(sizeof(struct Student));

if(p1 == NULL)

{

printf("Not enough memory to allocate buffer\n");

system("PAUSE");

exit(1); /* terminate program if out of memory */

}

p1->score = rand()%101;//产生随机值

p1->next=NULL;

for(i=2;i<=n;i++)

{

p2=p1;

p1=(struct Student *)malloc(sizeof(struct Student));

if(p1 == NULL)

{

printf("Not enough memory to allocate buffer\n");

system("PAUSE");

exit(1); /* terminate program if out of memory */

}

p1->score = rand()%101;

p1->next=NULL;//最近产生的节点下一节点指向空

p2->next=p1;

}

return head;

}

//显示循环链表的成员

void DisplayLink(struct Student *head)

{

struct Student *p;

p=head;

do

{

printf("%3d ", p->score);

p=p->next;

}while(p!=NULL); //p再次与head相等时,即所有成员都遍历完成

printf("\n\n");

}

//选择排序法排序链表

struct Student *SortLink(struct Student *head)

{

struct Student *head2=NULL,*p1,*p2,*p1lst,*p2lst,*q;

float MaxScore;

while(head!=NULL)

{

p2=p1=head;

MaxScore=head->score;

while(p1!=NULL)

{

if(p1->score > MaxScore)

{

MaxScore=p1->score;

p2lst=p1lst;

p2=p1;

}

p1lst=p1;

p1=p1->next;

}

if(p2==head)

{

head=head->next;

}

else

{

p2lst->next=p2->next;

}

if(head2==NULL)

{

head2=q=p2;

}

else

{

q->next=p2;

q=q->next;

}

}

q->next=NULL;

return head2;

}

int main(int argc, char *argv[])

{

struct Student *head;

srand((unsigned)time( NULL ));

head=CreatLink(head,N);

printf("The sorces random Generated :\n");

DisplayLink(head);

head=SortLink(head);

printf("After Sort The sorces are follows:\n");

DisplayLink(head);

free(head);

system("PAUSE");

return 0;

}

链表也是一种数据结构,看看这个程序满足你的要求不

c语言中随机排序函数,利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 用C语言编程...相关推荐

  1. matlab基数排序,c语言 数据结构 利用随机函数产生N个随机整数,对这些数进行多种方法进行排序...

    满意答案 srand(time(NULL)); //产生随机数 for(i = 0; i < n; i++) a[i] = rand()%(n - i); extern void insert( ...

  2. C语言中定义整形可以连等吗,关于一道分解整数为N个连数整数的编程题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根 ...

  3. 关于linuxC语言中创建进程,利用execlp函数执行.c程序问题

    关于linuxC语言中创建进程,利用execlp函数执行.c程序问题 对于一个小白来说,这个系统调用真的太难了,完全摸不着头脑啊,一搜execlp函数,全是执行的命令,什么传参硬是没懂. 不过说到底, ...

  4. python文件定位函数_C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  5. C语言程序设计 C语言中的时间函数

    C语言中关于时间的函数 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实例向你展示了t ...

  6. C语言中比较大小的函数模板,C语言中实现模板函数小结 : 不敢流泪

    --by boluor 2009/5/20 如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求- 考 ...

  7. C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  8. c语言函数编写格式,在c语言中如何实现函数模板?

    如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求- 考虑了一阵子后,就想到了qsort上.qsor ...

  9. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  10. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

最新文章

  1. [Angular JS教程] HeroService: getHeroes failed: undefined 问题解决方法
  2. centos7全离线安装redis3.2.8集群
  3. 如何卸载Windows 7中的IE10并还原到IE9
  4. 手把手教你如何在阿里云ECS搭建Python TensorFlow Jupyter
  5. AndroidManifest.xml配置文件属性详解
  6. 程序员的职业素养文摘
  7. JAVA进阶教学之(foreach)
  8. 技术干货 | “选图预览并上传”的场景如何解?全网最全方案汇总来了
  9. Java怎么跑不起来_tarsJava example 跑不起来
  10. css实现文本过长时自动添加省略号
  11. 使用Xmanger登陆aix系统桌面时报桌面服务DT未启动问题
  12. 阿群笔记:CentOS7 在线安装 docker 的推荐方法
  13. L2TP/L2TP over IPSec
  14. 58节沈大海H5edu.cn2016javaScript视频教程打包下载
  15. js如何直接打开百度地图app进行导航
  16. python可以手眼定标吗_北京高碑店小学生Python编程周末班
  17. mybatis 9-23
  18. nload0.7.2编译及使用说明
  19. MAL-PEG-NH2,马来酰亚胺-PEG-胺|mal修饰Fe3O4活化磁珠200-300nm|mal修饰SiO2@Fe3O4磁珠200-300nm齐岳生物供应
  20. 解决vimdiff ‘E97: Cannot create diffs‘错误的一种方法

热门文章

  1. 计算机重装系统桌面文件如何恢复,电脑重装系统后桌面文件如何恢复-万兴恢复专家...
  2. 奔跑中的交银施罗德基金,崛起的新生代基金经理
  3. zheng项目系统简单的分析记录
  4. 计算机网络应用基础总结,(完整版)计算机网络应用基础高教版对口高考复习资料总结...
  5. 计算机高考计划,职中高三计算机高考复习计划
  6. 长沙python培训_长的解释|长的意思|汉典“长”字的基本解释
  7. Golang环境及revel框架在Linux下的安装
  8. IE里面的画笔---VML(Vector Markup Language)入门之一
  9. 模拟摄像机和网络摄像机的简要对比
  10. 基于Androidstudio餐厅点餐选座系统