summeraaaaaaaa 2017-12-07 11:20 采纳率: 75%
浏览 1864
已采纳

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

#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;

}

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

  • 写回答

14条回答

  • zw123wu 2017-12-07 12:23
    关注

    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;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(13条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置