m0_62375273 2022-06-23 18:32 采纳率: 81.3%
浏览 159
已结题

数据结构的算法设计和复杂度

问题遇到的现象和发生背景

img

img

问题相关代码,请勿粘贴截图

c或者c++

运行结果及报错内容

设计算法

我的解答思路和尝试过的方法

我已用python解决了一遍

我想要达到的结果

用C或者C++完成算法设计并分析复杂度

  • 写回答

2条回答 默认 最新

  • 关注

    只是学号按顺序排好了,那么只能遍历链表,所以时间复杂度是O(n),遍历过程中,只用到1个临时变量,所以空间复杂度是O(1);
    代码如下:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    #define N 1000
    typedef struct _stu
    {
        int id; //学号
        char name[20];//姓名
        char sex;//性别
        char pro[20]; //专业
        int grade; //班级
        float score; //绩点
    }Student;
    
    typedef struct _node
    {
        Student stu[N];
        int nmb; //实际学生数量
    }LinkList;
    
    
    
    //录入数据
    void input(LinkList* list)
    {
        int i, n;
        printf("请输入学生数量:");
        scanf("%d", &n);
        list->nmb = n;
        for (i = 0; i < n; i++)
        {
            printf("请输入学生%d的学号:", i + 1);
            scanf("%d", &list->stu[i].id);
            printf("请输入学生%d的姓名:", i + 1);
            scanf("%s", list->stu[i].name);
            getchar(); //吸收回车符
            printf("请输入学生%d的性别:", i + 1);
            scanf("%c", &list->stu[i].sex);
            printf("请输入学生%d的专业:", i + 1);
            scanf("%s", list->stu[i].pro);
            printf("请输入学生%d的班级:", i + 1);
            scanf("%d", &list->stu[i].grade);
            printf("请输入学生%d的绩点:", i + 1);
            scanf("%f", &list->stu[i].score);
        }
    }
    
    //显示学生信息
    void showStu(Student stu)
    {
        printf("学号:%d\n", stu.id);
        printf("姓名:%s\n", stu.name);
        printf("性别:%c\n", stu.sex);
        printf("专业:%s\n", stu.pro);
        printf("班级:%d\n", stu.grade);
        printf("绩点:%.2f\n", stu.score);
    }
    
    int main()
    {
        int i, n;
        int score;
        LinkList list;
        input(&list); //录入数据,按照学号升序排序录入
        printf("请输入要查找的绩点:");
        scanf("%f", &score);
        
        for (i = 0; i < list.nmb; i++)
        {
            if (list.stu[i].score == score)
                showStu(list.stu[i]);
        }
    
        
        return 0;
    }
    
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 有问必答小助手 2022-06-24 11:10
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月2日
  • 已采纳回答 6月24日
  • 创建了问题 6月23日

悬赏问题

  • ¥20 python 3des pyDes库
  • ¥15 关于#mysql#安装失败的问题。MySQL
  • ¥15 想问一下for循环计算表达式的方法,第一次接触
  • ¥15 如何在VA框架上面加功能,去读取框架内任何app数据功能
  • ¥15 关于#c语言#的问题:用c或c++写一个计算下列问题有关软件工程的代码并加上分析
  • ¥15 Zeppelin0.10.0版本升级lib包下的shiro-web
  • ¥15 链表入队的指针内存问题
  • ¥20 vba如何写本地html文件执行js
  • ¥15 VS2022的C#如何创建
  • ¥20 关于#用户注册#的问题,如何解决?