七天学会C语言-第七天(结构体)

在这里插入图片描述

1.定义结构体

例 1:把一个学生的信息(包括学号、姓名、性别、住址等 4 项信息) 放在一个结构体变量中,然后输出这个学生的信息。

#include <stdio.h>struct Student {int student_id;char name[30];char gender;char address[60];
};int main() {struct Student a = {1, "Houge", 'M', "Hua Guo Shan"};printf("学号: %d\n", a.student_id);printf("名字: %s\n", a.name);printf("性别: %c\n", a.gender);printf("住址: %s\n", a.address);return 0;
}

运行结果:
在这里插入图片描述

例 2:输入两个学生的学号、姓名和成绩,输出成绩较高者的学号、姓名和成绩。若二者相等,则输出两个学生的全部信息。

#include <stdio.h>struct student
{int xuehao;char name[30];float chengji;
} a, b;int main()
{printf("请输入第一个学生的学号、姓名和成绩:\n");scanf("%d,%s,%f", &a.xuehao, a.name, &a.chengji);printf("请输入第二个学生的学号、姓名和成绩:\n");scanf("%d,%s,%f", &b.xuehao, b.name, &b.chengji);printf("成绩较高者的信息如下:\n");if (a.chengji > b.chengji)printf("%d\t%s\t%f\n", a.xuehao, a.name, a.chengji);else if (a.chengji < b.chengji)printf("%d\t%s\t%f\n", b.xuehao, b.name, b.chengji);else{printf("%d\t%s\t%f\n", a.xuehao, a.name, a.chengji);printf("%d\t%s\t%f\n", b.xuehao, b.name, b.chengji);}return 0;
}

运行结果:
在这里插入图片描述

2.结构体数组

例 1:有三名学生的 3 项信息:学号、姓名和成绩。请编程按成绩由高到低输出各学生的信息。

#include <stdio.h>struct student
{int xuehao;char name[30];float chengji;
} xuesheng[3] = {{001, "HouBoShi", 99}, {002, "ShaPaoZi", 20}, {003, "ShaLeBaJi", 90}};int main()
{struct student linshi;int i, j;for (i = 0; i < 2; i++){for (j = i + 1; j < 3; j++){if (xuesheng[j].chengji > xuesheng[i].chengji){linshi = xuesheng[i];xuesheng[i] = xuesheng[j];xuesheng[j] = linshi;}}}printf("排序后的各学生信息如下:\n");for (i = 0; i < 3; i++){printf("%d\t%s\t%f\n", xuesheng[i].xuehao, xuesheng[i].name, xuesheng[i].chengji);}return 0;
}

运行结果:
在这里插入图片描述

3.使用结构体变量与指针变量

例 1:键盘输入五名学生的信息(包括学号、姓名和 2 门课程的成绩),并输出平均分最高的学生的信息。

#include <stdio.h>struct student
{int xuehao;char name[30];float fen1;float fen2;
} sheng[5];int main()
{struct student max(struct student a[]);struct student xueba;int i;for (i = 0; i <= 4; i++){printf("请输入第%d 名学生的学号、姓名和 2 门成绩:\n", i + 1);scanf("%d,%s,%f,%f", &sheng[i].xuehao, sheng[i].name, &sheng[i].fen1, &sheng[i].fen2);}xueba = max(sheng);printf("平均分最高的学生的信息如下:\n");printf("学号:%d\n 姓名:%s\n2 门成绩:%f,%f\n", xueba.xuehao, xueba.name, xueba.fen1, xueba.fen2);return 0;
}struct student max(struct student a[])
{float pingjunfen[5];int i, zuigao;for (i = 0; i <= 4; i++){pingjunfen[i] = (a[i].fen1 + a[i].fen2) / 2;}for (zuigao = 0, i = 1; i <= 4; i++){if (pingjunfen[zuigao] < pingjunfen[i]){zuigao = i;}}return (a[zuigao]);
}

运行结果:在这里插入图片描述

4.结构体变量做函数参数

例 1:把一个学生的信息(包括学号、姓名、性别 3 项信息)放在一个结构体变量中,然后输出这个学生的信息。

#include <stdio.h>struct student
{int xuehao;char name[30];char xingbie;
} a = {001, "Houge", 'M'};int main()
{struct student *p;p = &a;printf("学号:%d\n 姓名:%s\n 性别:%c\n", p->xuehao, p->name, p->xingbie);return 0;
}

运行结果:
在这里插入图片描述

例 2:有三名学生的 3 项信息:学号、姓名和成绩。请编程按成绩由高到低输出各学生的信息。

#include <stdio.h>struct student
{int xuehao;char name[30];float chengji;
} xuesheng[3] = {{001, "HouBoShi", 99}, {002, "ShaPaoZi", 20}, {003, "ShaLeBaJi", 90}};int main()
{struct student linshi, *p;p = &xuesheng[0];int i, j;for (i = 0; i < 2; i++){for (j = i + 1; j < 3; j++){if ((*(p + j)).chengji > (*(p + i)).chengji){linshi = *(p + i);*(p + i) = *(p + j);*(p + j) = linshi;}}}printf("排序后的各学生信息如下:\n");for (i = 0; i < 3; i++){printf("%d\t%s\t%f\n", (*(p + i)).xuehao, (*(p + i)).name, (*(p + i)).chengji);}return 0;
}

运行结果:
在这里插入图片描述

七天完结,本专栏只是根据所学进行整合,可不能作为学会C语言的依据哦,请大家期待下一个专栏~

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

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

相关文章

Flink的部署模式:Local模式、Standalone模式、Flink On Yarn模式

Flink常见的部署模式 Flink部署、执行模式Flink的部署模式Flink的执行模式 Local本地模式下载安装启动、停止Flink提交测试任务停止作业 Standalone独立模式会话模式单作业模式应用模式 YARN运行模式会话模式启动Hadoop集群申请一个YARN会话查看Yarn、Flink提交作业查看、测试作…

SQL模板-用户留存率计算

在这段实习中&#xff0c;我遇到了用户留存率计算的需求&#xff0c;这里做个总结。 首先来讲下&#xff0c;什么是用户留存&#xff1f; 在互联网行业中&#xff0c;用户在某段时间内开始使用应用&#xff0c;经过一段时间后&#xff0c;仍然继续使用该应用的用户。用户留存一…

5.docker可视化工具(Portainer)

本文操作&#xff0c;在 192.168.204.102 机器执行 安装最新版 portainer&#xff0c;请使用 portainer/portainer-ce 镜像。图片来源&#xff1a;https://hub.docker.com/r/portainer/portainer。   来这里可查看最新版本&#xff1a;https://github.com/portainer/p…

内网穿透,轻松实现PostgreSQL数据库公网远程连接!

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

MongoDB的搭建 和crud操作

MongoDB docker 下载 docker run --restartalways -d --name mongo -v /docker/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6使用navcat工具使用MongoDB Crud操作 jar包 <dependency><groupId>org.projectlombok</groupId><artifactId>lom…

【面试经典150 | 双指针】三数之和

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;暴力枚举方法二&#xff1a;双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对…

Selenium自动化测试框架工作原理你明白了吗?

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 一、Selenium是什么&#xff1f;   用官网的一句话来讲&#xff1a;Selenium automates browsers. Tha…

【Python Fastapi】js上传文件,fastapi处理,js显示回传信息

python from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse from typing import List import requestsapp FastAPI()# 配置静态文件目录 app.mount("/static"…

排序算法-----归并排序

目录 前言&#xff1a; 归并排序 1. 定义 2.算法过程讲解 2.1大致思路 2.2图解示例 拆分合成步骤 ​编辑 相关动态图 3.代码实现&#xff08;C语言&#xff09; 4.算法分析 4.1时间复杂度 4.2空间复杂度 4.3稳定性 前言&#xff1a; 今天我们就开始学习新的排序算法…

LLaMa

文章目录 Problems403 代码文件LLaMA: Open and Efficient Foundation Language Models方法预训练数据结构优化器一些加速的方法 结果Common Sense ReasoningClosed-book Question AnsweringReading ComprehensionMassive Multitask Language Understanding Instruction Finetu…

yo!这里是c++中的多态

前言 在学完继承之后&#xff0c;紧接着我们来认识多态&#xff0c;建议继承不太熟的先把继承部分的知识点搞熟&#xff0c;再来学习多态&#xff0c;否则会走火入魔&#xff0c;会混乱。因为多态是建立在继承的基础之上&#xff0c;而且多态中还存在与继承类似的概念&#xff…

QT-day2

1、完善登录框 头文件 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include "second.h"QT_BEGIN_NAMESPACE namespace…

【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”&#xff0c;"一句结束是否是要加;”等 为什么要使用代码规范&#xff1f; 在团队开发时&#xff0c;提高代码的可读性。 在创建项目时&#xff0c;我们选择的就是一套完整的代码…

STM32F103RCT6学习笔记2:串口通信

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发&#xff0c;有关基础知识的部分不会多唠&#xff0c;直接实践与运用&#xff01;文章贴出代码测试工程与测试效果图&#xff1a; 目录 串口通信实验计划&#xff1a; 串口通信配置代码&#xff1a; 测试效果图&#…

MQ - 22 Kafka集群架构设计与实现

文章目录 导图概述数据可靠性副本拉取 Leader 数据动态维护可用副本集合控制 Leader 切换和数据截断安全控制可观测性总结导图 概述 MQ - 15 集群篇_如何构建分布式的消息队列集群(下)说了基于 ZooKeeper 和 KRaft 来构建集群的两种方式,在这里就不再重复。 这里我们详细分…

【力扣每日一题】2023.9.22 将钱分给最多的儿童

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一笔钱和一些小朋友&#xff0c;要我们把这些钱分完不能剩&#xff0c;并且不能有小朋友被分到4元以及每个人至少分到1元&#xff…

Splashtop 的卓越安全性获得 ISO 27001 认证

在快速发展的数字环境中&#xff0c;实施强有力的安全措施尤为重要。Splashtop 始终优先考虑安全性&#xff0c;一如既往地在远程访问行业坚持以身作则。 我们最近宣布 Splashtop 已获得 ISO/IEC 27001 认证&#xff0c;证明了我们对信息安全、数据保护和合规性最高标准的坚定…

有没有免费的人才测评工具,免费的人才测评系统软件?

最近看到知乎上有个问题挺火的&#xff0c;就是问有没有免费的人才测评工具&#xff0c;人才测系统软件目前是有挺多的&#xff0c;但是要说免费&#xff0c;我还真心没有听说过&#xff0c;不但不免费&#xff0c;比较专业的人才测评公司&#xff0c;价格还是非常高的。 人才…

有趣的设计模式——适配器模式让两脚插头也能使用三孔插板

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 场景与问题 众所周知&#xff0c;我们国家的生活用电的电压是220V而笔记本电脑、手机等电子设备的工作压没有这么高。为了使笔记本、手机等设备可以使用220V的生活用电就需…

3、Elasticsearch功能使用

第4章 功能使用 4.1 Java API 操作 随着 Elasticsearch 8.x 新版本的到来&#xff0c;Type 的概念被废除&#xff0c;为了适应这种数据结构的改 变&#xff0c;Elasticsearch 官方从 7.15 版本开始建议使用新的 Elasticsearch Java Client。 4.1.1 增加依赖关系 <propertie…