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

#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
tnnevol 定义一个 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)该学生的出生日必须最早 若学生出生年份相同则进行出生月份的比较若出生月份相同则继续比较其出生...
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
C语言 链表 求某班20名学生的最高成绩
务描述 某班级有20名学生,要求从键盘输入每个学生的课程成绩(百分制),并输出最高成绩者。 功能要求 ①找出成绩最高者,并输出该成绩 ②用链表实现存储(每名学生包括姓名和成绩两项),并用函数实现链表的创建,输出和查找
找到年龄最大的人,并输出。请找出程序中有什么问题。
找到年龄最大的人,并输出。请找出程序中有什么问题。 #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);}
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;
集合和泛型问题总结
集合和泛型问题总结 1.定义一个学生类Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。A:遍历集合遍历输出。B:求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。 分析:集合遍历 ,if判断 代码如下: public static void main(String[] args) { Student s1 = new Student(...
链表的使用(创建学生链表:实现增加学生,对年龄排序,逆序,查找与需要年龄最近的学生)//2018.07.25.
.1.题目:创建两个学生链表,含有姓名、年龄的信息,一个链 表存放男生,一个链表存放女生。 .2.题目:将上面两个链表合并,按学生的年龄进行排序,合 成新的链表. .3.题目:将上题中建立的链表进行反转,实现按年龄的逆序 排列 .4.题目:在上面的实现的新链表中,给定一个年龄,迅速查 找和该学生年龄最接近的学生姓名。 综合后的代码:链表实现增加学生信息;按...
/*一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。*/
/*一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。*/
JAVA日期类求年龄并求出大于指定年龄的学生。本人菜鸟,第一次发JAVA博客,也是第一次发博客!望大家交流指正!
今天老师让设计个学生类,用日期类来求出年龄并通过输入指定年龄求出大于年龄的学生!下面是我的小代码: package stuT_test; import java.text.SimpleDateFormat; import java.util.*; /** * 1.建立个学生类,属性有姓名,出生日期等。 * 2.建立学生数组,输入一个年龄,求出所有大于此年龄的学生。 * * @au
JAVA-打印最大的年龄,再把年龄最大的名字改掉(新手用于记录每天的作业)
实例: package qige; //导入的包。(*是全部) import java.util.*; //定义一个类。 public class Shop {   //公共静态的主方法。   public static void main(String[] args) {     // //创建ArrayList集合。     ArrayList&lt;ShopCS&gt; arr...
编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
#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个函数:一个函数完成建立链表的工作,第二个函数完成输出链表上各结点值,第三个函数求出总分最高和最低的同学并输出,第四个函数完成释放链表结点占用的动态存储空间。
查询出学生表中年龄和分数相同的所有同学的名字
首先看一下表中的数据 select t.* from student t where (select count(*) from student where age=t.age and score=t.score)&amp;gt;1; 执行结果如下:
C语言——建立一个链表表示学生的信息(学号、姓名、分数)
1、输入学生信息,建立链表; 2、输出链表中全部学生信息; 3、根据姓名检索学生信息; 4、打印成绩不及格学生名单。
C++——异质链表2-14
#ifndef LINK_H #define LINK_H #include &amp;lt;iostream&amp;gt; #include &amp;lt;string&amp;gt; using namespace std; class Person { public: Person(){} Person(string id, string name, int...
程序设计基础大作业
建立一个学生链表,每个结点包括学号、姓名、性别、年龄。输入一个年龄值,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去,否则,显示没有该年龄的学生。
查找链表中值最大的节点
递归的方式查找链表中值最大的节点,用于交流学习。
链表中找最大值
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) {
JS控制语句 编程练习 学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。...
编程练习 在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。 学生信息如下: ('小A','女',21,'大一'), ('小B','男',23,'大三'), ('小C','男',24,'大四'),...
数据结构课程设计 建立一个学生管理系统,以单链表的形式存储,学生信息包括学号,姓名,年龄,出勤,奖励惩罚,电话号码
#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;//惩罚
输入五位学生姓名成绩,输出最大值最小值
/* *烟台大学计算机学院 *文件名称:main.cpp *作 者:王者健 *完成日期:2016年6月13日 *版 本 号:codeblocks 16.01 */ #include #include using namespace std; struct student { string name; float score; }; int main() {
创建简单学生链表 并按照语文成绩排序(挑选最大节点组建新链表)
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;typedef struct stu{ int id; char name[32]; int chinese; int math; struct stu * next;}STU,*PSTU;STU * add(PSTU head)    //创建单向链表  尾插法  不带头节点  { char sel; ...
MySQL 关于年龄、生日的7道查询题目
创建学生信息表 create table Student( s_id varchar(20), s_name varchar(20) not null default'', s_birth varchar(20) not null default'', s_sex varchar(10) not null default'', primary key(s_...
建立一个链表,每个结点数据包括:学号、姓名,性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
#include #include #define LEN sizeof(struct student) int n=0; struct student{ int age; long num; char name[20]; unsigned char sex; struct student *next; }; struct student *creat(){
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...
用链表储存学生信息然后排序输出
题目:4.建立一个链表,每个结点包括:学号,姓名,年龄,性别。要求输入3个人的信息,将他们按照年龄正序/逆序排序输出他们的信息。 下面是代码: 结构体模块: typedef struct Student{ long num; char name[8]; int age; char sex[5]; Student *next; }stu; 初始化模块 void init(stu **p...
遍历链表确定链表中的最大值
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; }  
求链表最大值
求链表最大值int getMax(SLink *L) { if(L==NULL) return NULL;//如果链表为NULL 则返回 NULL else { SLink *p,*maxp; p = L->next; maxp=p;//maxp指向第一个节点 while(p!=NULL) {
已知一个链表,现编写一个函数search(),要求根据输入的学生学号,输出他的各科成绩。
已知一个链表中存储了若干名学生的信息,每名学生的信息包括:学号、英语成绩、数学成绩、计算机成绩。现编写一个函数search(),要求根据输入的学生学号,输出他的各科成绩。
N名学生的成绩已在主函数中放入一个带头节点的链表结构中
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
习题 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...
建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。(自己编程)
建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。最近接触到了链表的编程学习,遇到这样的比较基础的编程,程序表现大致分为几个步骤: 1、建立一个链表,编写一个建立链表的函数,并输入学号、姓名、性别、年龄,这些信息, 2、编写一个删除输入要求年龄的函数。 3、编写一个链表输出函数。 #include &amp;lt;stdio...
C语言基于单链表得学生成绩管理系统
传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统。首先给大家总结下为什么你们学习C语言会觉得难,尤其是对于单链表这块,主要原因得是因为一下两点: 编写流程不清晰 功能设计不清晰 基于单链表得学生成绩管理系统分为两个模块。 #include #include #include struct student { ...
如何根据List中 对象的某一属性排序,比如按照学生对象的年龄属性排序。|Collections.max()|Collections.sort()
本文目录 1.List相关 2.如何取List中(基本类型)的最大值 3.Collections.max()解析 4.如本文标题,List放学生对象,如何取最大年龄的学生 5.Collections.sort()解析 6.debug 测试Collections.sort() 究竟如何排序 本文目录 1.List相关 List 是有序的,即按照元素的添加顺序...
6-2 输出结构体数组中年龄最大者的数据 (10 分)
6-2 输出结构体数组中年龄最大者的数据 (10 分) 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在主函数中输出。 函数接口定义: struct student fun(struct student std[], int n); 其中 std 和 n 都是用户传入的参数。 函数fun的功能是将含有 n 个人的形参 std 所指结构体数组中年龄...
《数据结构》2.6通过一趟遍历找出链表中的最大值
/* 设计一个算法,通过一趟遍历,找出链表中的最大元素。 */ #include typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; int InitList(LinkList &L){ L=new LNode; L->next=NULL; return 1; } void CreateL
数据库实验交互模式下的DML sql查询
使用查询分析器实现如下功能: (1)找出年龄小于20岁的所有学生 (2)找出年龄小于20岁且是外语系的学生 (3)找出学生关系中的所有学生 (4)求所有学生的姓名、年龄 (5)在学生关系中找出年龄小于20岁的学生的姓名、性别 (6)找出已选课的学生的学号 (7)检索所有课程情况 (8)检索先行课号为“5”的课程名 (9)找出选修“数据库”课程,且成绩大于90的学生姓名 (10)找出张平所选修全部课程的课程名和成绩 (11)找出选修了所有课程的学生的学号 (12)找出选修了学号为“98001”的学生所选修所有课程的学生姓名 (13)找出不选修任何课程的学生 (14)找出至少选修了学号为“98002”的学生所选修的一门课的学生姓名 (15)找出至少选修了一门其先行课号为“5”号课程的学生姓名 (16)求至少选修了“操作系统”和“数据结构”课程的学生学号 (17)在课程关系中增加计算机原理课程,其课程号为8,先行课号为5,学分为4 (18)将学生关系中所有学生的年龄增加1岁 (19)将王欣从学生关系及选课关系中删掉 (20)将学生关系中赵岩的年龄改为20岁 (21)计算1号课程的学生平均成绩 (22)查询学习1号课程的学生的最高分数 (23) 查询所有不姓刘的学生姓名 (24) 查询选修了3号课程的学生的学号及成绩,查询结果按分数降序排列 (25) 查所有有成绩的记录的学生学号和课程号
职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来
输入描述: 输入第一行包括1个整数N,1 输出描述: 可能有多组测试数据,对于每组数据,输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。关键字顺序:年龄>工号>姓名,从小到大。 输入例子: 5 501 Jack 6 102 Nathon 100 599 Lily 79 923 Lucy 15 814 Mickle 65 输出例子: 501 Jack 6 923
链表建立、查找、增加、删除 -录入学生成绩举例
typedef struct student{    char name[15]; int mark; struct student *next;}Node, *node;SYS_STATUS main(int argc , char* argv[]){    int num,i; node p, p1, head; head = (node) malloc(sizeof(Node)); if(...
java计算链表、数组列表或数组中最大元素
package com; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; public class Test3 { /**