数据结构 / day01 作业

news2024/11/19 4:40:15

1.定义结构体数组存储5个学生的信息:姓名,年龄,性别

定义函数实现输入,要求形参使用结构体指针接收

函数实现5个学生年龄排序(注意对年龄排序时,交换的是所有信息)

定义函数实现输出,要求形参使用结构体指针接收

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

struct student
{
    char name[20];
    int age;
    char gender; //f,m

};

void input(int n, struct student *p);
void sort_by_age(int n, struct student *p );
void ouput(int n, struct student *p);

int main(int argc, const char *argv[])
{
    int n=5;

    struct student arr_stu[n];
    struct student *p = arr_stu;

    input(n, arr_stu);
    printf("before sort:\n");
    ouput(n, arr_stu);
    putchar(10);
    sort_by_age(n, arr_stu);
    printf("after sort:\n");
    ouput(n, arr_stu);

    
    return 0;
}


void input(int n, struct student *p){
    for(int i=0; i<n ;i++)
    {
        printf("please input no.[%d] student's info:\n", i+1);

        printf("name:");
        scanf("%s", (p+i)->name);

        printf("age:");
        scanf("%d", &(p+i)->age);

        printf("gender:");
        scanf(" %c", &(p+i)->gender);
    }
}
void sort_by_age(int n, struct student *p )
{
    int descend=0;
    for(int i=0; i<n-1; i++)
    {
        int cur=i;

        for(int j=i+1; j<n; j++)
        {
            if(descend==1 && (p+cur)->age < (p+j)->age)
            {
                cur=j;
            }
            else if(descend==0 && (p+cur)->age > (p+j)->age)
            {
                cur=j;
            }
    
        }
        if(cur!=i)
        {
        
        struct student t;
        strcpy(t.name, (p+cur)->name);
        t.age = (p+cur)->age;
        t.gender = (p+cur)->gender;


        strcpy((p+cur)->name, (p+i)->name);
        (p+cur)->age = (p+i)->age;
        (p+cur)->gender = (p+i)->gender;

        strcpy((p+i)->name, t.name);
        (p+i)->age = t.age;
        (p+i)->gender = t.gender;
        
        }
    
    }


}
void ouput(int n, struct student *p)
{
    printf("name\tage\tgender\n");
    for(int i=0; i<n; i++)
    {
        printf("%s\t%d\t%c\n", (p+i)->name, (p+i)->age, (p+i)->gender);
    }                                                                                                                                                                                                                  
    putchar(10);

}
~                                                                                                                                                                                                                      
~                                                                                                                                                                                                                      
~                                                                                                                                                                                                                      
~  

输出结果:

please input no.[1] student's info:
name:a
age:19
gender:f
please input no.[2] student's info:
name:b
age:29
gender:m
please input no.[3] student's info:
name:c
age:27
gender:f
please input no.[4] student's info:
name:d
age:18
gender:m
please input no.[5] student's info:
name:e
age:23
gender:f
before sort:
name	age	gender
a	19	f
b	29	m
c	27	f
d	18	m
e	23	f


after sort:
name	age	gender
d	18	m
a	19	f
e	23	f
c	27	f
b	29	m

2.定义车辆a和车辆b,实现交换

车的信息:品牌,单价,颜色

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

struct car
{
    char brand[20];
    int price;
    char color[10];
};

void output(struct car ca);

int main(int argc, const char *argv[])
{

    struct car a;
    struct car b;

    strcpy(a.brand, "Tesla");
    a.price = 20;
    strcpy(a.color, "black");
    printf("car a:\n");
    output(a);

    strcpy(b.brand, "byd");
    b.price =30;
    strcpy(b.color, "blue");
    printf("car b:\n");
    output(b);

    //exchange
    
    struct car t;
    strcpy(t.brand, a.brand);
    strcpy(a.brand,  b.brand);
    strcpy(b.brand, t.brand);

    t.price = a.price;
    a.price = b.price;
    b.price = t.price;

    strcpy(t.color, a.color);                                                                                                                    
    strcpy(a.color, b.color);
    strcpy(b.color, t.color);

    printf("car a:\n");
    output(a);

    printf("car b:\n");
    output(b);
    
    return 0;
}

void output(struct car ca)
{
    printf("brand\tprice\tcolor\n");
    printf("%s\t%d\t%s\n\n", ca.brand, ca.price, ca.color);


}
~             

输出结果

car a:
brand	price	color
Tesla	20	black

car b:
brand	price	color
byd	30	blue

car a:
brand	price	color
byd	30	blue

car b:
brand	price	color
Tesla	20	black

3.思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1264068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu系统Springboot项目Nginx安装(编译安装方式)

1.下载 nginx官网下载 Index of /download/ 2.解压 这里我下载的1.25.3版本&#xff0c;系统是ubuntu 解压 tar -zxvf nginx-1.25.3.tar.gz 3.编译安装 安装前需要执行安装一些系统依赖 3.1安装PCRE库 ubuntu&#xff1a;执行以下命令 sudo apt-get install libpcre…

第一百八十三回 如何给图片添加阴影

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"自定义可以滑动的刻度尺"样相关的内容&#xff0c;本章回中将介绍" 如何给图片添加阴影".闲话休提&#xff0c;让…

Scrum敏捷开发流程及支撑工具

Scrum是一种敏捷开发框架&#xff0c;用于管理复杂的项目。以下这些步骤构成了Scrum敏捷开发流程的核心。通过不断迭代、灵活应对变化和持续反馈&#xff0c;Scrum框架帮助团队快速交付高质量的产品。 以下是Scrum敏捷开发流程的基本步骤&#xff1a; 产品Backlog创建&#xf…

Unity之ARFoundation如何实现BodyTracking人体跟踪

前言 ARBodyTracking,就是指通过手机AR扫描并精确的捕获人物的肢体部位的技术。如下图所示 这项技术目前是有苹果的ARKit提供,苹果的body tracking 功能需要使用配备 TrueDepth 摄像头的设备,配备 A12 仿生芯片、运行 iOS 13 或更高版本的设备,比如 iPhone X 及更新机型。…

anaconda换源安装pytorch(附带bug解决办法)

1.安装anaconda 如何安装anaconda可以看这篇文章:如何安装anaconda 2.换源安装pytorch: 首先进入到pytorch官网&#xff0c;选对好参数之后复制命令进入到anaconda prompt即可: 然后进入自己的环境之后输入该命令(即conda install …)&#xff0c;则可以进行下载。下载完成…

从苹果到蔚来,「车手互联」网罗顶级玩家

作者 |Amy 编辑 |德新 汽车作为家之外的第二大移动空间&#xff0c;正与手机这一移动智能终端进行「车手互联」。 车手互联始于十年前的苹果CarPlay&#xff0c;一度成为时代弄潮儿&#xff0c;不断有后继者模仿并超越。时至今日&#xff0c;CarPlay2.0依旧停留在概念阶段&am…

vue3怎么提升效率的?为什么vue3比vue2快?效率提升主要在哪些方面?

官方文档中说vue3在 客户端渲染效率比vue2提升了1.3~2倍&#xff0c; SSR渲染效率比vue2提升了2~3倍&#xff0c;那么究竟是怎么提升的呢&#xff1f; 一、静态提升 在 vue3项目中的package.json文件中&#xff0c;可以看到这个 vue/compiler-sfc&#xff0c;它是用来解析(.v…

KernelSHAP vs TreeSHAP

Kernel SHAP和Tree SHAP都用于近似Shapley值。Tree SHAP要快得多。缺点是它只能用于基于树的算法&#xff0c;如随机森林和xgboost。另一方面&#xff0c;Kernel SHAP是模型不可知的(model agnostic)&#xff0c;这意味着它可以与任何机器学习算法一起使用。我们将比较这两种近…

SEAM-STRESS

模型 PCM means ‘Pixel Correlation Module’ 辅助信息 作者未提供代码

Python二叉树用法介绍

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 二叉树是一种常见的数据结构&#xff0c;具有树形结构&#xff0c;每个节点最多有两个子节点。Python中有多种方式来表示和操作二叉树&#xff0c;本文将介绍二叉树的基本概念、构建、遍历和一些常见操作&#x…

[UGUI]Unity背包系统制作详细步骤

二、背包制作 1.创建空物体&#xff0c;然后创建UI-Image 制作背包整个背包所在的父UI的背景图 选中BG&#xff0c;找到他的锚点设置&#xff0c;按住Alt键&#xff0c;点击右下角的适配&#xff0c;让锚点和内容都匹配画布 PS&#xff1a;不按Alt键是设置一个元素的锚点位…

某医院小程序存在支付漏洞和越权

某医院小程序存在支付漏洞和越权查看他人身份证&#xff0c;手机号&#xff0c;住址等信息 一个医院线上的小程序 登陆后点击个人信息&#xff0c;抓包&#xff0c;放到repeter模块&#xff0c; 修改strUserID参数可以越权查看别人信息 放intruder模块可以跑数据&#xff0c;这…

神器!使用 patchworklib 库进行多图排版真棒啊

如果想把多个图合并放在一个图里&#xff0c;如图&#xff0c;该如何实现 好在R语言 和 Python 都有对应的解决方案&#xff0c; 分别是patchwork包和patchworklib库。 推介1 我们打造了《100个超强算法模型》&#xff0c;特点&#xff1a;从0到1轻松学习&#xff0c;原理、…

互联网程序设计HTML+CSS+JS

一、HTML基础 HTML超文本标记语言。 超文本&#xff1a;链接&#xff1b; 标记&#xff1a;标签&#xff0c;带尖括号的文本。 1、标签结构 标签要成对出现&#xff0c;中间包裹内容&#xff1b; <>里面放英文字母&#xff08;标签名&#xff09;&#xff1b; 结束…

013 C++ set与map的用法

前言 本文将会向你介绍set与map的主要用法 set详解 int main() {set<string> s;vector<string> v { "Fan1","Fan2", "Fan3", "Fan4" };for (auto e : v){s.insert(e);}string input;while (cin >> input){if (s.…

java+python农村集体产权管理系统php+vue

注册、登陆该系统根据操作权限的不同分为管理员和用户两种&#xff0c;新用户在登陆前要进行用户注册&#xff0c;注册完成后方可进行登陆。 本次设计的关键问题处理&#xff0c;主要有如下几点&#xff1a; (1&#xff09;本次开发&#xff0c;采用主流Thinkphp框架进行开发&a…

LRU 是什么?

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

java中IO知识点概念

这里写自定义目录标题 内存中的数据以电子信号的形式表示&#xff0c;而磁盘中的数据是以磁场的方向表示。1.流的分类2.File类3.流的API 关键4.理解缓冲的作用-一次性多拿些读写文件的时候为什么要有缓冲流 -意义是什么缓冲流的使用 5.路径问题6.文件的创建7.内存和磁盘存储本质…

Python---lambda表达式

普通函数与匿名函数 在Python中&#xff0c;函数是一个被命名的、独立的完成特定功能的一段代码&#xff0c;并可能给调用它的程序一个返回值。 所以在Python中&#xff0c;函数大多数是有名函数 > 普通函数。但是有些情况下&#xff0c;我们为了简化程序代码&#xff0c;…

SpringSecurity+JWT实现权限控制以及安全认证

一.简介 Spring Security 是 Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 认证&#xff1a;验证当前访问系统的是不是本系统的用户&#xff0c;并且要确认具体是哪个用户​ 授权&…