c语言用链表对学生成绩排序,学生成绩排序和平均分计算利用c语言链表的创建插入删除.doc...

#define NULL 0

#define LEN sizeof(struct student)

struct student

{

long num;

float score;

struct student *next;

};

int n;

struct student *creat(void)//创建链表

{

struct student *head;

struct student *p1,*p2;

n=0;

p1=p2=(struct student*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

head=NULL;

while(p1->num!=0)

{

n=n+1;

if(n==1)head=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

}

p2->next=NULL;

return(head);//带回链表的头指针

}

void print(struct student *head)//输出链表

{

struct student *p;

printf("\nNow,there %d records are:\n",n);

p=head;

if(head!=NULL)

do

{

printf("%ld %5.1f\n",p->num,p->score);

p=p->next;

}

while(p!=NULL);

}

void averprintf(struct *head)//平均值输出

{

struct student *p;

float aver,sum=0,high=0,low=0;

long num1;

printf("\nNow,the averge score is:\n");

p=head;

if(head!=NULL)

do

{

sum=sum+p->score;

p=p->next;

}

while(p!=NULL);

aver=sum/n;printf("%5.1f\n",aver);}

void highprintf(struct student *p)/*求最高分*/

{

int high=p->score;

long num1=p->num;

do {if (highscore)

{high=p->score;

num1=p->num;}

p=p->next ;}while (p!=NULL);

printf("\nThe highest score is:%d,and its number is:%ld\n",high,num1);}

void lowprintf(struct student *p)/*求最低分*/

{

int low=p->score;

long num1=p->num;

do{if (low>p->score)

{low=p->score;

num1=p->num;}

p=p->next;}while (p!=NULL);

printf("\nThe lowest score is:%d,and its number is:%ld\n",low,num1);}

void sort(struct student *head)//学生成绩排序

{

struct student *p1,*p2;

float i;long t;

printf("Students from low to high ranking\n");

p1=head;

if(head==NULL)

{

printf("it is blank\n");

}

else

{

while(p1!=NULL)

{

p2=p1->next;

while(p2!=NULL)

{

if(p1->score>p2->score)

{

i=p2->score;

p2->score=p1->score;

p1->score=i;

t=p2->num;

p2->num=p1->num;

p1->num=p2->num;

}

p2=p2->next;

}

p1=p1->next;

}

}

while(p1!=0)

{

printf("%ld %5.1f\n",head->num,p1->score);

head->next;

}

}

struct student *del(struct student *head,long num)//删除节点

{struct student *p1,*p2;

if(head==NULL){printf("\nlist null!\n");return head;}

p1=head;

while(num!=p1->num&&p1->next!=NULL)

{p2=p1;p1=p1->next;}

if(num==p1->num)

{if(p1==head)head=p1->next;

else p2->next=p1->next;

printf("delete:%ld\n",num);

n=n-1;

}

else printf("%ld not been found!\n",num);return(head);

}

struct student *insert(struct student *head,struct student *stud)//插入节点

{struct student *p0,*p1,*p2;

p1=head;

p0=stud;

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{while((p0->num>p1->num)&&(p1->next!=NULL))

{p2=p1;p1=p1->next;}

if(p0->num<=p1->num)

{if(head==p1)head=p0;

else p2->next=p0;

p0->next=p1;}

else

{p1->next=p0;p0->next=NULL;}

}

n=n+1;

return(head);

}

void main()

{

struct student *head,*stu;

long del_num;

printf("input records:\n");

head=creat();

lowprintf(head);//加入排序,最高分,最低分调用函数

highprintf(head);

averprintf(head);

//删除节点操作

print(head);sort(head);print(head);

printf("\ninput the deleted number:");

scanf("%ld",&del_num);

while(del_num!=0)

{head=del(head,del_num);

print(head);

printf("input the deleted number:");

scanf("%ld",&del_num);}

//插入节点操作

printf("\ninputthe insertd record:");

stu=(struct student *)malloc(LEN);

scanf("%ld,%f",&stu->num,&stu->score);

while(stu->num!=0)

{

head=insert(head,stu);

print(head);

printf("input the inserted record:");

stu=(struct student *)malloc(LEN);

scanf("%ld,%f",&stu->num,&stu->score);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深井软岩巷道群支护技术与应用_深井软岩巷道深浅孔帷幕注浆技术

一、成果内容1.基本原理对失修巷道进行刷扩、支护&#xff0c;满足使用断面后进行帮顶喷浆、底板整平&#xff0c;先底板注浆&#xff0c;然后帮、顶注浆。锚架充支护巷道直接底板整平后&#xff0c;先底板后帮、顶注浆。通过全断面深浅孔联合注水泥浆进行巷道加固&#xff0c;…

店铺咨询系统c语言,课内资源

1 题目介绍1.1 问题描述出于不同目的的旅客对交通工具和交通路径有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个交通咨询系统程序,为旅客提供最优决策的交通咨询。1.2 需求分析提供对…

f分布表完整图_【教育统计答疑】如何理解正态分布、均值分布、^2分布、t分布和F分布...

许多教育统计的初学者都表示这几个分布感到学起来非常吃力&#xff0c;结合最近上课的体会以及答疑的情况&#xff0c;觉得很有必要在这里简单地对这部分内容进行澄清和梳理&#xff0c;以助理解。首先&#xff0c;“为什么要学习这几个分布”可能是许多人纠结的问题&#xff0…

c语言第一章考试题及答案,C语言考试题库及答案整理版.doc

C语言考试题库及答案整理版.docC语言理论上机考试选择题部分(共200题)1、下面程序的输出是___D______#includevoid main(){ int k11;printf("k%d,k%o,k%x\n",k,k,k);}A) k11,k12,k11 B) k11,k13,k13C) k11,k013,k0xb D) k11,k13,kb2、在下列选项中,不正确的赋值语句是…

python每天定时9点执行_python每天定时运行某程序代码

思路&#xff1a;利用time函数返回的时间字符串与指定时间字符串做比较&#xff0c;相等的时候执行对应的操作。不知道大家的思路是什么&#xff0c;感觉这样比较耗CPU。。。。 此处设置为15:30:10 输出相应内容&#xff0c;需要执行什么&#xff0c;就修改什么。 import time …

新颖的c语言题目,新颖版c语言经典习题100例(全面面)

新颖版c语言经典习题100例(全面面) (66页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;19.90 积分&#xfeff;实用文档C语言习题100例(最新整理版)习题目录&#xff1a;(按住Ctrl点击可以快速跳转到…

c语言jt808协议库,平台如何应答——关于JT/T808协议

前两篇也说明了一些应答的相关内容&#xff0c;对于刚接触的开发者来说恐怕还是不太容易理解&#xff0c;这里专门列举一个篇幅来讲解如何针对终端设备上报的信息进行应答。严格来讲&#xff0c;如果不应答&#xff0c;终端设备会判别为服务平台断开连接&#xff0c;就会重复发…

熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?

之前好多人私信我python数据分析怎么快速入门&#xff0c;我在这里直接介绍一下自己的心得经验吧。 要学习pandas&#xff0c;我并不建议看大量的教程&#xff0c;等看完教程&#xff0c;天都黑了&#xff0c;一觉醒来热情都凉了。 我的建议是&#xff0c;首先放平心态&#xf…

rssi定位算法 c语言,【论文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...

摘要&#xff1a;Recent rapid rise of indoor location based services for smartphones has further increased the importance of precise localization of Wi-Fi Access Point(AP).However,most existing AP localization algorithms either exhibit high errors or need s…

arm体系结构与编程_教程:如何学习嵌入式系统(基于ARM平台)

一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上&#xff0c;将基于CPU的处围器件&#xff0c;整合到CPU芯片内部&#xff0c;比如早期基于X86体系结构下的计算机&#xff0c;CPU只是有运算器和累加器的功能&#xff0c;一切芯片要造外部…

ubuntu nfs linux,Ubuntu的NFS功能配置

环境:Ubuntu 10.04步骤:1.sudo apt-get install portmap2.sudo apt-get install nfs-kernel-server注意:第2步我安装失败,换源后仍然如此,最后我在新立得里面搜索到nfs-kernel-server,安装成功3.在更目录下新建共享目录:mkdir /forlinux4.gedit /etc/exprots,在后面添加/forlin…

python import 路径_python import 上级目录的导入

python import 上级目录的导入,路径,上级,文件,目录,递归 python import 上级目录的导入 易采站长站&#xff0c;站长之家为您整理了python import 上级目录的导入的相关内容。 有时候我们可能需要import另一个路径下的python文件&#xff0c;例如下面这个目录结构&#xff0c;…

一个android工程生成两个aar,android studio生成aar包并在其他工程引用aar包(示例代码)...

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件&#xff0c;aar包导入其他android studio 工程后&#xff0c;其他工程可以方便引用源码和资源文件2.生成aar包步骤&#xff1a;①.用android studio打开一个工程&#xff0c;然后新建一个Module&#…

python设计一个动物类_我用Python实现了12500张猫狗图像的精准分类

我用 Python 实现了 12500 张猫狗图像的精准分类 在这篇文章中&#xff0c;我们将展示如何建立一个深度神经网 络&#xff0c;能做到以 90% 的精度来对图像进行分类&#xff0c;而在深度神 经网络&#xff0c;特别是卷积神经网络兴起之前&#xff0c;这还是一个非常困 难的问题…

android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类

ScaleAnimation类是Android系统中的尺寸变化动画类&#xff0c;用于控制View对象的尺寸变化&#xff0c;该类继承于Animation类。 ScaleAnimation类中的很多方法都与Animation类一致&#xff0c;该类中最常用的方法便是ScaleAnimation构造方法。【基本语法】public ScaleAnimat…

javascript 本地对象和内置对象_详解 JavaScript 面向对象

1. 概述JavaScript面向对象比较难理解的点是类的继承。不管是es5写法还是es6写法&#xff0c;JavaScript继承的本质是原型链。具体可看我的上一篇文章&#xff1a;田浩&#xff1a;详解原型、原型链、构造函、实例、new​zhuanlan.zhihu.com因为es6有专门的语法&#xff0c;写法…

android wifi设备连接通信,通过wifi与设备进行通信(Android)

通过wifi与设备进行通信(Android)[复制链接]本帖最后由 灞波儿奔 于 2019-2-17 21:40 编辑通过wifi与设备进行通信(Android)最近leader决定把app与设备之间的通信改为wifi&#xff0c;通过http协议实现设备之间的通信。相对与之前的蓝牙通信&#xff0c;的确简单不少&#xff0…

工作汇报ppt案例_【赠书】开工大吉!今年一定要干过写PPT的!

不知不觉&#xff0c;春节就过去了&#xff0c;新年开工&#xff0c;朋友圈里晒满了开工红包&#xff0c;领了开工礼就意味着真正新的一年开始了。虽然假期的慵懒安逸留下了倦怠的后遗症&#xff0c;但状态依旧切换到工作模式&#xff0c;毕竟每年都希望能比过去更进一步&#…

android webview 长按复制,Android webview 点击或长按有蒙层 – 热爱改变生活

Android 使用 webview 加载本地 html&#xff0c;在本地 html 上面点击的时候会有一层橙色的蒙层&#xff0c;使用下面的代码可以去掉。body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquo…

postscript打印机什么意思_涨知识|你不知道的关于打印机的打印过程和打印机驱动的那些事...

以前一直以为打印很简单&#xff0c;不就是编辑好文件按个“打印”就行了&#xff1f;但其实打印过程可以复杂到你分分钟“怀疑人生”。你以为的打印过程可能是这样的 ↓。我们看到的打印过程然而&#xff0c;真正的打印过程是这样的 ↓。实际上的打印过程打印机打印一页文件或…