找出链表中年龄最大的学生

#include
#include
#include
struct student
{
int number;
char name[30];
char sex[3];
int age;
student *next;
};

student* fileInput(char* fileName);
void traversal(student* phead);
int main()
{
student *phead;
char *fileName;
strcpy(fileName,"C:\Users\88450\桌面\周四\students.dat");
phead=fileInput(fileName);
traversal(phead);

return 0;

}

student* fileInput(char* fileName)
{
student s,*pnew,*phead,*ptail;
FILE fp;
fp=fopen("students.dat","rb");
int i=0;
while(fread(&s,sizeof(student),1,fp)!=0)

{
pnew=(student
)malloc(sizeof(student));
pnew->number=s.number;
strcpy(pnew->name,s.name);
strcpy(pnew->sex,s.sex);
pnew->age=s.age;
pnew->next=NULL;

if(i==0)
  {
    phead=pnew;
    ptail=pnew;
  }
else
  {
    ptail->next=pnew;
    ptail=ptail->next; 
  }
i++;
}   
fclose(fp);
return phead;

}

void traversal(student* phead)
{
student *p;
p=phead;
while(p!=NULL)

{
printf ("学号:%d 姓名:%s 性别:%s 年龄:%d\n",p->number,p->name,p->sex,p->age);
p=p->next;

}

}
如何编一个自定义函数,查找出年龄最大的学生(要可实现可找出多个最大年龄的学生),谢谢各位大佬了!

0

14个回答

student* findoldest(student* phead)
{
int maxage = 0;
student *pnew,*poldest,*ptail,*p;
p=phead;
while(p!=NULL)
{
if (p->age >= maxage) {
pnew=(student)malloc(sizeof(student));
pnew->number=p->number;
strcpy(pnew->name,p->name);
strcpy(pnew->sex,p->sex);
pnew->age=p->age;
pnew->next=NULL;
if (p->age > maxage) {
if (poldest != NULL) {

            }
    poldest = pnew;
    ptail = pnew;
            maxage = p->age;
  } else {
    ptail->next=pnew;
    ptail=ptail->next; 
  }
}
p=p->next;

}
return poldest;
}

1
summeraaaaaaaa
summeraaaaaaaa 谢谢
一年多之前 回复

设置一个临时比较年龄的变量tmpmax = 0;一个临时存放学生信息的对象数组 vector tmpstu;一次遍历得出结果。
1、遇到年龄大于tmpmax的,先清空tmpstu数组,然后将当前学生信息加入
2、遇到年龄等于tmpmax的,将tmpmax更新为当前学生年龄,并添加当前学生信息进入tmpstu数组,
3、遇到年龄小于tmpmax的,不作改变
遍历完所有学生信息后可以得到年龄最大的学生信息的数组tmpstu即所求。

2

找出年龄最大的学生然后输出年龄和他相同的学生

1
qq_41310673
qq_41310673 5123工具箱东方既白 比偶
一年多之前 回复
qq_41310673
qq_41310673 找出年龄最大的学生然后输出年龄和他相同的学生就对了
一年多之前 回复
qq_41310838
newblue_nn 定义一个 max 变量 把最大的赋值给他,然后定义一个数组,把和他相等的存进数组,最后打印数组,就好了
一年多之前 回复
summeraaaaaaaa
summeraaaaaaaa 能有具体的代码解释吗?就这么说我不懂
一年多之前 回复

线性表中由头至尾依次遍历,设置max变量记录学生中最大的年龄,这是第一次遍历。第二次,同样遍历,比较年龄,如果和max值相等,就可以输出相关信息了。

1

从你给的代码看不出怎么找到最大年龄的学生的,并没有看到比较语句啊

0

线性表中由头至尾依次遍历,设置max变量记录学生中最大的年龄,这是第一次遍历。第二次,同样遍历,比较年龄,如果和max值相等,就可以输出相关信息了。

0

比较年龄,如果和max值相等,就可以输出相关信息了

0

找出年龄最大的学生然后输出年龄和他相同的学生

0

用循环结构来做,找出最大即可

0

你自己贴出来的程序到处都是错误!!!

0
summeraaaaaaaa
summeraaaaaaaa 要是错的太多,大佬可以指出让我改正啊。我初学C语言,的确与很多不懂,正因为如此,才需要各位大佬多多指教啊!
一年多之前 回复
共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言找出最大年龄学生信息
目录 问题分析 代码实现 运行结果 问题分析 *首先对问题进行分析:     学生年龄最大要求(1)该学生的出生年份必须最早                                (2)该学生的出生月份必须最早                                 (3)该学生的出生日必须最早 若学生出生年份相同则进行出生月份的比较若出生月份相同则继续比较其出生...
实验四 数据查询实验
use StudentDB ; /**********************实验四 数据查询实验******************************/ -- 1. 查询学生的基本信息; select *from Student; -- 2. 查询“CS”系学生的基本信息; select *from Student where Sdept='CS'; -- 3. 查询“CS
Sql 查询每个年级中,年龄最大的两个学生信息。。。
学生信息userInfo表结构:学生信息userInfo表数据:方法1:select * from userInfo a where (select count(*)from userInfo b where b.major = a.major and b.age>=a.age )<=2 order by major, age desc;查询结果:方法2:select * from userIn
Oracle:根据身份证号码查询年龄最大的人
这是建表语句! create table student(      idcard varchar2(18),      name varchar2(20),      sex int,      high int,      age int  ); create sequence idcard start with 1000 increment by 1;
找到年龄最大的人,并输出。请找出程序中有什么问题。
找到年龄最大的人,并输出。请找出程序中有什么问题。 #define N 4 #include "stdio.h" static struct man { char name[20]; int age; } person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; main() { struct man *q,*p; int i,m=0; p=person; for (i=0;i<N;i++) { if(m<p->age) q=p++; m=q->age; } printf("%s,%d",(*q).name,(*q).age);}
笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
以下代码是LZ花两三个小时仔细斟酌的结果,用到的知识点有freopen()的使用,异常处理,仅供参考.如有纰漏,欢迎指正.#include using namespace std; //定义一个错误信息,用于抛出异常 char *err = "not find."; //定义学生结点信息 struct node { char name[30]; char id[20];
C语言 链表 求某班20名学生的最高成绩
务描述 某班级有20名学生,要求从键盘输入每个学生的课程成绩(百分制),并输出最高成绩者。 功能要求 ①找出成绩最高者,并输出该成绩 ②用链表实现存储(每名学生包括姓名和成绩两项),并用函数实现链表的创建,输出和查找
一条SQL语句实现查询每个部门中年龄最大的员工信息
<br /><br />select *  from   test1 t<br />    where   not   exists(select   1   from   test1   where   BranchId=t.BranchId and  Age> t.Age)   
27.有10个学生,输出成绩最低的学生的信息(包括姓名、年龄、成绩、出生日期)(用结构体知识)。
有10个学生,每个学生的数据包括姓名、年龄、成绩、出生日期,要求完成min函数,输出成绩最低的学生的信息(包括姓名、年龄、成绩、出生日期)(用结构体知识)。 #include <stdio.h> #include <string.h> struct birth { int year; int month; int day; }; struct student { ch
sqlite3 -- 查找指定名字中年龄最大的一行所有字段信息
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;sqlite3.h&amp;gt; static int callback(void *data, int argc, char **argv, char **azColName){ int i; fprintf(stderr, &quot;%s\n&quot;, (const ch...
数据结构课程设计 建立一个学生管理系统,以单链表的形式存储,学生信息包括学号,姓名,年龄,出勤,奖励惩罚,电话号码
#include #include #include #define MAC 1000 #define INCR 100 typedef struct Student{  int Id; char name[20]; int age; char phonenum[20]; int ChuQin;//出勤  int reward;//奖励  int penaty;//惩罚
java中使用LinkedList类的实例
使用LinkedList类 LinkedList类实现了List接口,用LinkedList类实现的List集合采用链表结构保存对象。链表结构的优点是便于向集合中插入和删除对象,如果经常需要向集合中插入对象,或者是从集合中删除对象,使用由LinkedList类实现的List集合的效率较好。链表结构的缺点是随机访问对象的速度较慢,如果经常需要随机访问集合中的对象,使用由LinkedList类实现的
链表删除相应年龄
和前一个相比,这次程序的年龄可以多次输入#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;malloc.h&amp;gt;typedef struct StudentType{ int age; char name[20]; struct StudentType *next;}*Linklist,Link;Linklist Build(int n);void Delete(Linkli...
122.找出单项链表中的最大值
N名学生的成绩已在主函数中放入一个带头节点的链表结构体中,h指向链表的头节点。fun函数的功能是:找出学生的最高分,由函数值返回。 #define _CRT_SECURE_NO_WARNINGS #include #include #define N 8 struct slist { double s; struct slist *next; }; typedef struct s
习题 9.12 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
C程序设计 (第四版) 谭浩强 习题9.12 个人设计 习题 9.12 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 代码块: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; struct Student{ int num; char nam...
编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
#include using namespace std; struct student { char name[20]; char s_number[10]; char gender[3]; int age; char major[10]; struct student* next; }; student* CREATE_LIST(); int oper
建立一个无序链表,每个结点包含:学号、姓名、年龄、C++成绩、数学成绩和英语成绩
建立一个无序链表,每个结点包含:学号、姓名、年龄、C++成绩、数学成绩和英语成绩。要求除主函数外编写4个函数:一个函数完成建立链表的工作,第二个函数完成输出链表上各结点值,第三个函数求出总分最高和最低的同学并输出,第四个函数完成释放链表结点占用的动态存储空间。
/*一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。*/
/*一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。*/
一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。
#include #include #include struct student { char name[12]; int number; char genda; int age; struct student *next; }; struct student *head; void creat(int nn) { int i; struct student *p,*q
程序设计基础大作业
建立一个学生链表,每个结点包括学号、姓名、性别、年龄。输入一个年龄值,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去,否则,显示没有该年龄的学生。
Java笔试题:将集合中的学生信息按照学生的年龄升序排列
青年教育社 2017-01-16 13:45 最近很多学员在参加笔试时都被问到集合中排序的问题,在新年的第一篇文章中给大家分享一下相关内容。“将集合中的学生信息按照学生的年龄升序排列”这个题目主要考察的是求职者对集合中元素存取以及元素值比较的方法、排序方法(一般使用冒泡排序)、泛型集合、集合中自带的sort方法、集合中比较器的应用等。下面分别使用冒泡排序和Sort完成题目的要求。 无论
JAVA日期类求年龄并求出大于指定年龄的学生。本人菜鸟,第一次发JAVA博客,也是第一次发博客!望大家交流指正!
今天老师让设计个学生类,用日期类来求出年龄并通过输入指定年龄求出大于年龄的学生!下面是我的小代码: package stuT_test; import java.text.SimpleDateFormat; import java.util.*; /** * 1.建立个学生类,属性有姓名,出生日期等。 * 2.建立学生数组,输入一个年龄,求出所有大于此年龄的学生。 * * @au
链表中找最大值
typedef struct { int data; Node *next; Node *prev; }Node; int find_max(Node *phead) { assert(phead != NULL); Node *p = phead->next; int max = p->data; while(p->next != phead->next) {
输入五位学生姓名成绩,输出最大值最小值
/* *烟台大学计算机学院 *文件名称:main.cpp *作 者:王者健 *完成日期:2016年6月13日 *版 本 号:codeblocks 16.01 */ #include #include using namespace std; struct student { string name; float score; }; int main() {
JAVA-打印最大的年龄,再把年龄最大的名字改掉(新手用于记录每天的作业)
实例: package qige; //导入的包。(*是全部) import java.util.*; //定义一个类。 public class Shop {   //公共静态的主方法。   public static void main(String[] args) {     // //创建ArrayList集合。     ArrayList&lt;ShopCS&gt; arr...
JAVA类的继承学习笔记
  现在我们可以定义两个类——球员类和NBA球员类,我们可以列举一下两个类的属性和方法;     球员类——                 ——属性:身高,体重,姓名,年龄,场均得分;                 ——方法:罚篮得分     NBA球员类——                         ——属性:身高,体重,姓名,年龄,场均得分;               ...
集合和泛型问题总结
集合和泛型问题总结 1.定义一个学生类Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。A:遍历集合遍历输出。B:求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。 分析:集合遍历 ,if判断 代码如下: public static void main(String[] args) { Student s1 = new Student(...
建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。(自己编程)
建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。最近接触到了链表的编程学习,遇到这样的比较基础的编程,程序表现大致分为几个步骤: 1、建立一个链表,编写一个建立链表的函数,并输入学号、姓名、性别、年龄,这些信息, 2、编写一个删除输入要求年龄的函数。 3、编写一个链表输出函数。 #include &amp;lt;stdio...
求链表最大值
求链表最大值int getMax(SLink *L) { if(L==NULL) return NULL;//如果链表为NULL 则返回 NULL else { SLink *p,*maxp; p = L->next; maxp=p;//maxp指向第一个节点 while(p!=NULL) {
【C++】建立一个学生信息链表,每个结点包括:学号、姓名、成绩。【原创技术】
题目: 建立一个学生信息链表,每个结点包括:学号、姓名、成绩。实现链表的建立、显示和查询。查询是指输入一个学号,如果链表中存在该学号的的结点,则显示此结点的数据。 源代码: //科目:C++实验3 //题目:建立一个学生信息链表,每个结点包括:学号、姓名、成绩。 //语言:C++ //作者:武叶 //创作时间:2012年3月20日 #include using names
遍历链表确定链表中的最大值
Position Find( List L, ElementType X ){ for(int i=0;i&amp;lt;L-&amp;gt;Last;i++) if(L-&amp;gt;Data[i]==X) return i; return ERROR; }  
查找链表中值最大的节点
递归的方式查找链表中值最大的节点,用于交流学习。
数据库的基础题和答案
1、 创建数据库和数据表,并完成以下相关题目。 几个基础实体表可以存储学生、班级、课程、教师、系别相关信息 写出相关数据表(包括未列出的关系表、其它表)创建语句(表详细属性可参照以下问题进行补全) 假定以下所有问题相关表数据都存在 2、当查找学生信息的同时,可以列出班主任信息 3、 查找学生姓名为xxx 的人  4、查找学生分数大于80的人 5、查找老师年龄小于30岁的人 6、查
【OJ】用链表来实现成绩统计并查询、修改(原题目:最高分多少)
最高分多少?老师想知道从某某同学到某某同学当中,分数最高的是多少。现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
已知一个链表,现编写一个函数search(),要求根据输入的学生学号,输出他的各科成绩。
已知一个链表中存储了若干名学生的信息,每名学生的信息包括:学号、英语成绩、数学成绩、计算机成绩。现编写一个函数search(),要求根据输入的学生学号,输出他的各科成绩。
一个自己用java写的学生单链表的相关问题
[size=xx-large][/size] 电子科大大二学生,刚学java,写了个java 链表类,发现大部分功能正常,只不过在删除功能上出了问题,弄了比较久,还是没弄出是什么问题。。。 先发到网上,看看有没有同学看出是什么问题,同时防止自己以后把这个问题给忘了。。。 [img]http://dl.iteye.com/upload/attachme...
建立一个的链表,输出5个学生最高分和学号
1、建立学生的学号、学分的结构体,并用静态链表创建5个变量输入学号与学分。求出最高分的学生的学号与学分。 2、建立学生的学号、学分的结构体,并用动态链表创建5个变量输入学号与学分。求出最高分的学生的学号与学分。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdow...
Java 往TreeSet集合中存储自定义对象学生,按照学生的年龄进行排序。
往TreeSet集合中存储自定义对象学生,按照学生的年龄进行排序。
【OC复合题】之定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C)
题目: 定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C) 1)    不使用@property,手动编写他们的访问器方法(getter和setter),注意内存管理(手动管理内存) 2)    增加一个便利构造器(快速构造器) 3)    使用NSLog输出学生对象时,输出信息格式为:My Name Is XXX  Age I
如何根据List中 对象的某一属性排序,比如按照学生对象的年龄属性排序。|Collections.max()|Collections.sort()
本文目录 1.List相关 2.如何取List中(基本类型)的最大值 3.Collections.max()解析 4.如本文标题,List放学生对象,如何取最大年龄的学生 5.Collections.sort()解析 6.debug 测试Collections.sort() 究竟如何排序 本文目录 1.List相关 List 是有序的,即按照元素的添加顺序...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 设学生课程数据库中 数据库中课程表学生表