编写一个C程序,实现以下功能:定义一个学生结构体Student(含学号、姓名、年龄、身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序。在主函数中

编写一个C程序,实现以下功能:

定义一个学生结构体Student(含学号、姓名、年龄、身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序。在主函数中输入10个学生的学号、姓名、年龄和身高,调用sort函数对学生数据排序,最后输出排序后的学生全部信息。

比较结构体部分成员,交换整个结构体的思维。

#define _CRT_SECURE_NO_WARNINGS 1
/*编写一个C程序,实现以下功能:
定义一个学生结构体Student(含学号、姓名、年龄、身高)
和一个函数sort(struct Student *p),
该函数使用选择排序法按年龄由小到大排序。
在主函数中输入10个学生的学号、姓名、年龄和身高,
调用sort函数对学生数据排序,最后输出排序后的学生全部信息。
*/
#define MAX 20
#include<stdio.h>
static int n;
struct Student {int id;char Name[MAX];int age;float tell;
};
void Sort(Student *p) {//选择排序排序年龄。for (int i = 0; i < n ; i++) {for (int j = 0; j < n - i -1; j++) {if (p[j+1].age < p[j].age) {//比较的是结构体部分成员,但对整个结构体交换。则需要创建一个新的结构体。Student tmp = p[j];p[j] = p[j + 1];p[j + 1] = tmp;}}}for (int i = 0; i < n; i++) printf("%d\t%s\t%d\t%f\t\n", p[i].id,p[i].Name, p[i].age, p[i].tell);
}
int main() {Student stu[MAX];printf("要创建学生对象的个数:");scanf("%d", &n);for (int i = 0; i < n; i++){printf("输入学生id:");scanf("%d", &stu[i].id);printf("输入学生姓名:");scanf("%s", &stu[i].Name);printf("输入学生年龄:");scanf("%d", &stu[i].age);printf("输入学生身高:");scanf("%f", &stu[i].tell);}Sort(stu);
//这里对于数组而言,直接传入数组名即可,但如果是其他数据,则需要传入地址的方式,
//因为传参并不能改变实参的值,只能通过传址的方式来改值,
//对于数组来说,arr[]可以改写成*arr,也就是指针形式。所以可以直接传数组名
}

 我犯得一些错误,

:打印出来烫烫烫,

可能存在的原因是:1.字符串没有结束符 2.数据输入有问题

我一开始写的是

scanf("%s",stu[i].Name[MAX]);

这里Name后面不应有方括号,%s本意就是输出一个字符串。

二:数据重复

一开始以为是浅拷贝导致数据没有完全达成转换,而我只会C++的深拷贝处理,对于C的深拷贝要全部数据都进行替换感觉很麻烦,询问之后才知道原来是冒泡排序写错了。。。

 

总结,马虎害死人,之后的学习会涉及到更多的数据处理,万一搞错一点很难处理,所以还是要细心排查啊。泪目 

也算是有所成长了,这些地方一直没有练到

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

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

相关文章

在抖音上刷到AI程序员的工资条后,我笑了,别吹了!

2020年&#xff0c;程序员会怎么样&#xff1f;A与B &#xff0c;薪酬与前景程序员与远方2017年~2018年&#xff0c;是人工智能大火的时候。你会发现&#xff0c;跟朋友聊天不谈人工智能&#xff0c;聊天的bigger都上不去。作为一个前景明朗的朝阳行业&#xff0c;高薪吸引&…

C++面向对象思想 两条直线交点计算

我相信哪怕一点光&#xff0c;也能驱散学习中的迷雾&#xff0c;我在这分享一点自己的挫见 思路&#xff1a; 这题最大的难点就是abc三个常数要怎么去构造&#xff0c;这里需要数学公式去推导&#xff0c;虽然是初中水平&#xff0c;也能体现编程和数学密不可分了。因为我之后…

K8s 实践 | 如何解决多租户集群的安全隔离问题?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 匡大虎责编 | 阿秃导读&#xff1a;如何解决多租户集群的安全隔离问题是企业上云的一个关键问题&#xff0c;本文主要介绍 Kubernetes 多租户集群的基本概念和常见应用形态&#xff0c;以及在企业内部共享集群的业务场景下&a…

scara机器人dh参数表_两分钟带你了解机器人标定的因素

为什么机器人需要标定&#xff1f;影响机器人本体精度因素分为两大类&#xff1a;运动学因素——加工误差、机械公差/装配误差、减速器精度、减速器空程等&#xff1b;动力学因素——质量、惯性张量、摩擦力、关节柔性、连杆柔性。机器人本体的实际精度和理论设计模型可能会存在…

Git的3大区域

为什么使用git&#xff1f; 为了保存文件的每一个历史记录&#xff0c;以便查看每一个历史节点的文件变动情况和把错误的的历史节点回滚。 git分为3个区域&#xff0c;工作区、暂存区、版本库(本地)。 工作区包括git已经管理的文件区域和新增以及修改的文件区域 暂存区&#x…

python编辑学生分数_python处理excel(04)数据筛选和过滤

源数据&#xff0c;我们最终要找出年龄在18——30岁之间&#xff0c;分数大于85分的学生&#xff0c;为A类学生。在excel里可以使用筛选功能&#xff0c;先筛选age列&#xff0c;大于等于、小于。这两个条件限制。然后选score后边的小三角&#xff0c;条件为大于等于85.最终数据…

如何打通“鱼塘” ?腾讯启动“SaaS技术联盟” 共建技术中台

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;“SaaS企业迎来了最好的时代。一方面&#xff0c;产业互联网大潮已至&#xff0c;中国企业降本增效的需求提升&#xff1b;另一方面&#xff0c;云计算…

Git 回滚

文章目录1. 简述2. 命令版本3. idea 图形化版本(场景1)4. idea 图形化版本(场景2)1. 简述 Git 回滚&#xff1a;常见的有2种场景&#xff0c;第一种是回滚到之前版本&#xff0c;第二种是回滚到之后的版本。 2. 命令版本 用到的命令&#xff1a; 场景1(回滚之前的版本)&…

python开两个守护线程_python 守护线程

守护线程 如果python线程是守护线程&#xff0c;那么以为着这个线程是“不重要”的&#xff0c;“不重要”意味着如果他的父进程结束了但该守护线程没有运行完&#xff0c;守护进程就会被强制结束。如果线程是非守护线程&#xff0c;那么父进程只有等到守护线程运行完毕后才能结…

Nutanix企业云助力嘉里大通提升核心竞争力

Nutanix&#xff08;纳斯达克代码&#xff1a;NTNX&#xff09;近日宣布&#xff0c;物流行业领导企业嘉里大通 (Kerry EAS) 已采用Nutanix超融合基础架构&#xff08;HCI&#xff09;和企业云解决方案&#xff0c;进行企业数据中心的现代化改造。 尽管面临全球贸易和区内经济…

SoapUI 测试http接口实战

文章目录1. New SOAP project2. New TestSuite3. New TestCase4. Add HTTP Request5. 配置请求参数信息6. 选择请求报文类型1. New SOAP project 1&#xff09;打开soapui–>右键Projects–>New SOAP project 2. New TestSuite 3. New TestCase 4. Add HTTP Request …

Git开发流程和工作流

开发流程&#xff1a; C2版本基于C1版本开发&#xff1b;C3版本基于C2版本开发&#xff1b; C4版本基于C3版本开发&#xff1b;C5版本基于C3版本开发&#xff1b; C6 是C4和C3合并后的版本 分支3个总览&#xff1a; 主分支、bug分支、新功能分支 Git修改变动分析&#xff1a;…

AI 安全在阿里业务中的实践,你了解吗?

我们知道&#xff0c;AI 技术将在很长一段时间占据互联网技术时代的风口。但是&#xff0c;有代码的地方就有缺陷&#xff0c;提到技术很难不讲安全&#xff0c;那么AI会不会碰到安全问题呢&#xff1f; AI安全 试想一下&#xff0c;未来的某个早晨&#xff0c;当你像往常一样…

解决idea修改html、js、css后,浏览器不能同步加载

重装了IDEA后&#xff0c;忽略了一些设置&#xff0c;导致在开发springboot项目时&#xff0c;启动了项目&#xff0c;修改了前端文件&#xff0c;但是浏览器中并不能实时加载修改的内容。 主要是IDEA的2个地方需要设置&#xff1a; 一、修改file-settings 二、在IDEA中&…

安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案

阿里妹导读&#xff1a;近日&#xff0c;阿里安全双子座实验室与马里兰大学等高校合作的论文《Covert Security with Public Verifiability: Faster, Leaner, and Simpler 》【1】被欧洲密码年会(Eurocrypt)2019接收。这是国内公司在安全多方计算领域的第一篇顶会论文&#xff…

996!007!同是敲了2万行代码,为什么他却晋升了?

正在敲代码的你 &#xff0c;春节假期即将来临&#xff0c;复盘这1年&#xff0c;你印象最深刻的一件事是什么&#xff1f;有人在群里回答了一条扎心的答案&#xff1a;忙碌1年&#xff0c;每天996&#xff0c;回首2019除了加班再无成长可说。你以为只要把事情搞定了&#xff0…

消息称苹果斥资2亿美元收购Xnor.ai;华为2000万英镑投资,加速发展HMS手机生态系统;国产SSD将迎来爆发……...

戳蓝字“CSDN云计算”关注我们哦&#xff01; 嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

Serverless 风暴来袭,前端工程师如何应对?

阿里妹导读&#xff1a;尽管大部分前端的工作并不涉及server&#xff0c;但最近半年serverless这个词汇以及其引发的热烈的讨论&#xff0c;深深触动了阿里巴巴高级前端技术专家伐薪。作为接触前端十余载的老开发&#xff0c;伐薪认为serverless可能会是接下来引起前端领域革命…

Git免密登陆远程

文章目录1. 生成公钥和私钥2. 拷贝公钥的内容&#xff0c;并设置到github中3.在git本地中配置ssh地址4. 以后使用5. 其他第三方代码托管仓库1. 生成公钥和私钥 执行以下命令&#xff1a; ssh-keygen注&#xff1a; windows (默认放在C:\Users\当前登录用户名.ssh目录下面) 例…