AAby. 2024-01-02 21:53 采纳率: 0%
浏览 18

C语言怎么将联系人信息链表按姓名排序啊

大家好,怎么将联系人信息链表按姓名排序啊 还要将序号也按此顺序更新!!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct contact
{
    char name[11];//姓名
    char gender;//性别
    int id;//序号
    long long tele;
    long long qq;
    int class;//班级
    struct contact *next;
} CON;
CON *head=NULL;//初始化全局变量head
void add()//添加联系人并存入文件
{
    FILE *fp;
    char name[11];//姓名最多十个字母
    char gender;
    int id,n;
    long long tele;
    long long qq;
    int class;
    if((fp=fopen("contacts.txt","a"))==NULL)//注意这里采用的时追加信息,即在原联系人后继续添加
    {
        printf("open file error!\n");
        exit(1);
    }
    printf("请输入要添加的联系人个数:\n");
    scanf("%d",&n);

    printf("请输入要添加的联系人信息:\n");//每人各占一行,每个信息用空格隔开
    for(int i=0;i<n;i++)
    {
        scanf("%s %d %c %lld %lld %d",name,&id,&gender,&tele,&qq,&class);
        fprintf(fp,"%s %d %c %lld %lld %d\n",name,id,gender,tele,qq,class);
    }
    fclose(fp);
}
CON *chain()//将文件中的联系人信息存在新链表中
{
    CON *h,*p,*q;
    char name[11],gender;
    int id,class;
    long long tele,qq;
    FILE *fp;
    h=(CON*)malloc(sizeof(CON));
    p=h;
    if((fp=fopen("contacts.txt","r"))==NULL)
    {
        printf("open file error!\n");
        exit(1);
    }
     while((fscanf(fp,"%s %d %c %lld %lld %d\n",&name,&id,&gender,&tele,&qq,&class))!=EOF)//提取文件中的信息
     {
         q=(CON*)malloc(sizeof(CON));
         strcpy(q->name,name);
         q->id=id;
         q->gender=gender;
         q->tele=tele;
         q->qq=qq;
         q->class=class;
         p->next=q;
         p=q;
     }//构建链表并存入信息
     p->next=NULL;
     return h;
}
int main()
{add();
head=chain();
//这里要加一个排序函数
}
  • 写回答

3条回答 默认 最新

  • writeBig 2024-01-02 22:00
    关注

    给出具体的问题

    评论

报告相同问题?

问题事件

  • 修改了问题 1月3日
  • 修改了问题 1月2日
  • 修改了问题 1月2日
  • 创建了问题 1月2日

悬赏问题

  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
  • ¥20 无法创建新的堆栈防护界面
  • ¥15 sessionStorage在vue中的用法
  • ¥15 wordpress更换域名后用户图片头像不显示
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework),并且基于qt实现打开一个web
  • ¥30 AD9854 为什么输出波形幅度受限,AI机器人勿扰
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,