• 牛客网刷题记录 || 结构体和类


    这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的优质网站牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人员的喜爱
    在这里插入图片描述

    牛客网干净整洁的界面,人性化的布局,高质量的题库题解,丰富的大厂面试题,让我想把它分享给大家,推荐大家来牛客网刷题,链接我就放在这了有需要自取👉点击开始刷题

    小Tips:注册完之后,不用填信息直接点X,开启刷题之旅~


    结构体和类

    🔥1.KiKi定义电子日历类

    在这里插入图片描述

    👌描述

    KiKi学习了面向对象技术,学会了通过封装属性(变量)和行为(函数)定义类,现在他要设计一个电子日历类TDate。
    它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,要求:
    (1)带有默认形参值的构造函数,默认值为0, 0, 0;
    (2)输出日期函数,用“日/月/年”格式输出日期;
    (3)设置日期函数,从键盘输入年、月、日

    输入描述:
    一行,三个整数,用空格分隔,分别表示年、月、日

    输出描述:
    一行,用“日/月/年”格式输出日期

    示例1:

    输入:2019 12 30
    输出:30/12/2019
    
    • 1
    • 2

    👌代码

    在这里插入图片描述

    #include
    #include
    #include
    #include
    #include
    using namespace std;
    
    int main()
    {
    		int day,month,year;
    		cin>>year>>month>>day;
    		printf("%d/%d/%d",day,month,year);
    	    return 0;
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    👌题解

    一个简单的创建类


    🔥2.牛牛的书

    在这里插入图片描述

    👌描述

    牛牛正在买书,每本书都有名字和价格,牛牛想把书按照价格升序排序

    输入描述:
    第一行输入一个正整数 n ,表示书的数量。
    后续每行都输入一个字符串 str 和一个正整数 p 表示书价格

    输出描述:
    把书名按照价格升序输出

    示例1:

    输入:3
    TheNowcoder 100
    Abook 20
    BBook 300
    输出:
    Abook
    TheNowcoder
    BBook
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    👌代码

    #include 
    
    typedef struct Book{
        char name[100];
        int price;
    }BOOK;
    int cmp_by_price(const void*e1,const void*e2)
    {
        return ((BOOK *)e1)->price-((BOOK *)e2)->price;
    }
    int main()
    {
        int n = 0;
        scanf("%d",&n);
        BOOK arr[n];
        for (int i = 0;i < n;i++)
        {
            scanf("%s %d",&arr[i].name,&arr[i].price);
        }
        int sz = sizeof(arr)/sizeof(arr[0]);
        qsort(arr,sz,sizeof(arr[0]),cmp_by_price);//快排
        for(int i = 0;i < n;i++)
        {
            printf("%s\n",arr[i].name);
        }
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

    👌题解

    先创建一个结构体struct:Book,属性有名字和价格,方法cmp_by_price作用的用在下面快速排序中用来比较两个元素的大小,用for循环进行简单的输入输出就ok了,注意对应题目的输入输出


    🔥3.牛牛的平面向量

    在这里插入图片描述

    👌描述

    牛牛有 n 个平面向量 (x1,y1) ,牛牛把这几个向量相加并输出这个向量的值

    输入描述:
    第一行输入一个正整数 n
    后续 n 行每行输入两个正整数分别是 x 和 y

    输出描述:
    输出所有的向量相加的结

    示例1:

    输入:
    3
    1 2
    2 1
    3 3
    输出:
    6 6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    👌代码

    #include  
    
    typedef struct
    { 
        int x1;
        int y1;
    }vector;
    
    int main(){
        int n;
        scanf("%d",&n);
        vector a[n];
        vector sum;
        for(int i=0;i<n;i++){
            scanf("%d%d",&a[i].x1,&a[i].y1);
            sum.x1+=a[i].x1;
            sum.y1+=a[i].y1;
        } 
        printf("%d %d",sum.x1,sum.y1);
        return 0; 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    👌题解

    结构体struct很方便的存取数据

    在这里插入图片描述


    🔥4.牛牛的时钟

    在这里插入图片描述

    👌描述

    牛牛在午夜12点(0点0分0秒)正在思考,在 t 秒之后是什么时间。他思考了 n 次这个问题

    输入描述:
    第一行输入一个正整数 n。
    第二行输入 n 个正整数 t ,表示 t 秒之后

    输出描述:
    输出 n 行,每行输出 t 秒之后的时间

    示例1:

    输入:
    4
    60 61 1 2
    输出:
    0 1 0
    0 2 1
    0 2 2
    0 2 4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    👌代码

    #include
    int main()
    {
        int n, a,b=0;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a);
            b=a+b;
            printf("%d %d %d\n",b/3600,(b%3600)/60,b%60);
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    👌题解

    b=a+b是求每次思考后的总时间


    结构体很人性化~

  • 相关阅读:
    事件对象(Event对象)
    java动态代理
    stm32f103r8t6单片机烧录问题“Flash Time out.”
    Android Studio实现课程表应用,美观又实用(Kotlin版本)
    前端基础入门之JS 正则表达式
    【Unity】加速Unity编辑器模式启动时间
    【MySQL】 MySQL 死锁问题分析优化器特性及优化方案
    Linux查看开机启动的服务
    【实测】python模拟jenkins的定时设置时间库:------------------【 python_jenkins_monitor 】
    idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵
  • 原文地址:https://blog.csdn.net/m0_64996150/article/details/126302631