C语言------结构体和共用体
仅供借鉴、仅供借鉴、仅供借鉴(整理了一下大一C语言每个章节的练习题、没得题目、只有程序了)
文章目录
1 、实训名称
实训8:结构体和共用体
2 、实训目的及要求
1、了解结构体,共用体的概念
2、熟练掌握结构体,共用体的定义、赋值、使用。
3 、学会正确使用结构体变量
3、源代码及运行截图
#include<stdlib.h>
#include<stdio.h>
#include<String.h>
#define N 10
struct student{
char name[N];
int score;
int no; //学号
};
void input(struct student stu[N]);//输入函数
void sort(struct student stu[N]);//排序函数
void aver(struct student stu[N]);//求分函数
void locating(struct student stu[N]);//查找函数
void input(struct student stu[N]){
int i;
for(i=0;i<N;i++)
{
printf("请输入第%d名学生的信息:",i+1);
scanf("%s%d%d",&stu[i].name,&stu[i].no,&stu[i].score);
}
}
void sort(struct student stu[N]){ //冒泡排序
int i,k;
struct student temp;
for(k=1;k<N;k++)
for(i=N-1;i>=k;i--)
if(stu[i].score>stu[i-1].score)
{
temp=stu[i];
stu[i]=stu[i-1];
stu[i-1]=temp;
}
printf("\t排名\t姓名\t学号\t成绩\n");
for(i=0;i<N;i++)
{
printf("\t%-8d%-8s%-8d%-8d\n",i+1,stu[i].name,stu[i].no,stu[i].score);
}
}
void aver(struct student stu[N]){
int max=stu[0].score;
int min=stu[0].score;
double average;
int i,sum=0;
for(i=0;i<N;i++)
{
if(stu[i].score>max)
{
max=stu[i].score;
}
}
for(i=0;i<N;i++)
{
if(stu[i].score<min)
{
min=stu[i].score;
}
}
for(i=0;i<N;i++)
{
sum+=stu[i].score;
}
average=sum/10.0;
printf("这10名学生的平均分为:%.2lf,最高分为:%d,最低分为:%d",average,max,min);
}
void locating(struct student stu[N]){
int i,ch;
printf("请输入你要查找的学号:");
scanf("%d",&ch);
for(i=0;i<N;i++)
if(ch==stu[i].no)
{
printf("查找到的学生,信息如下\n");
printf("\t姓名\t学号\t成绩\n");
printf("\t%-8s%-8d%-8d\n",stu[i].name,stu[i].no,stu[i].score);
}
}
int main()
{
int i;
struct student stu[N];
input(stu);
printf("\n成绩经过排序后为:\n");
sort(stu);
printf("\n");
locating(stu);
printf("\n");
aver(stu);
getchar();
getchar();
return 0;
}

4 、小结
通过本次实验,结构体可以存储不同类型的数据。可以将一类事物的相关信息写在一个结构体中便于操作。在对结构体进行赋值时需要用到循环结构。结构体可以当做特殊的数组进行对待,基本的操作和数组相似。
C语言------结构体和共用体的更多相关文章
- 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符
[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...
- 全国计算机等级考试二级教程-C语言程序设计_第14章_结构体、共用体和用户定义类型
函数的返回值是结构体类型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct ...
- __c语言__结构体、共用体、枚举__笔记
2017-09-16 21:14:09 结构体,共用体,枚举 1.结构体 把不同的类型整合成一个有机的整体,以便于引用,这个类型就叫做结构体 1)结构体变量的定义方式(3种)和引用成员变量: 定义一个 ...
- C语言程序设计(十二) 结构体和共用体
第十二章 结构体和共用体 当需要表示复杂对象时,仅使用几个基本数据类型显然是不够的 根本的解决方法是允许用户自定义数据类型 构造数据类型(复合数据类型)允许用户根据实际需要利用已有的基本数据类型来构造 ...
- [C#.NET 拾遗补漏]14:使用结构体实现共用体
在 C 和 C# 编程语言中,结构体(Struct)是值类型数据结构,它使得一个单一变量可以存储多种类型的相关数据.在 C 语言中还有一种和结构体非常类似的语法,叫共用体(Union),有时也被直译为 ...
- C++程序设计之结构体,共用体,枚举和typedef
[1]结构体的基本功 注意结构体里面可以有很多东西,可以结构体里面包含结构体 #include<iostream> using namespace std; struct Date { i ...
- C++面试常见问题——13结构体与共用体的sizeof
结构体与共用体的sizeof 结构体的sizeof 结构体变量占用的内存空间大小通常是其基本类型的大小,但是由例外(字节对齐机制) struct S1{ char c[5]; int a; doubl ...
- 07.C语言:结构体、共用体、枚举
一.结构体 是一种复合的数据类型,由多个不同类型的数据(为结构体的成员)组成的集合. 在c语言中没有给出结构体这种类型具体的形式(名称),但是给出类定义该结构体类型的方法(格式). 在使用结构体类型时 ...
- C语言:结构体,共用体
结构体: 一个变量,存储不同类型的数据项共用体:一个变量,存储不同类型的数据项,相同的内存位置,存储不同的数据类型 #include <stdio.h> #include <stri ...
随机推荐
- springboot整合xxl-job分布式定时任务【图文完整版】
一.前言 定时任务有很多种,有一些大的框架也有一些简单的实现. 比如常见的: JDK的Timer和TimerTask Quartz异步任务调度框架 分布式定时任务XXL-JOB Spring Task ...
- Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)
原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基 ...
- java-循环的应用环境以及数组的创建
1.三种循环结构的更佳适用情况: 1)while:"当..."循环 2)do...while:"直到..."循环 要素1与要素3相同时首选do...while ...
- 解决报错:axios is not defined
好家伙,来解决报错:axios is not defined 写前端嘛,修bug,不寒颤 进入页面一片空白 来看看报错: 1.axios在安装时:npm install axios --save-de ...
- python超多常用知识记录
在函数传参给变量**a,可以接收字典类型,当未传参默认空字典 set创建集合可以排重 while和for到参数未满足可以增加else cmp函数比较长度 divmod函数返回除数和余数结果 nonlo ...
- KingbaseES 表空间加密-透明加密
透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密.加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密.当前的透明 ...
- Thrift RPC改进—更加准确的超时管理
前言: 之前我们组内部使用Thrift搭建了一个小型的RPC框架,具体的实现细节可以参考我之前的一篇技术文章:https://www.cnblogs.com/kaiblog/p/9507642.htm ...
- Linux下自动删除过期备份和自动异地备份
每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/b ...
- Pwn出题指南
0x00:背景 最近在为社团招新赛出pwn题,发现网上关于出题方面的文章资料特别少,所以打算记录下自己出题的过程,便于网友们参考学习.本次出题采用了ctf_xinetd与pwn_deploy_chro ...
- 学会Linux,看完这篇就行了!
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/797ab07d.html 你好,我是测试蔡坨坨. 对于测试同学来说,Linux基本属于必学必会内容,招聘要求中基本都会出现L ...