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 ...
随机推荐
- 5.26 NOI 模拟
\(T1\)石子与HH与HHの取 博弈是不可能会的 \(c_i\)相等,比较显然的\(Nim,\)直接前缀异或求一下 \(a_i=1,\)区间长度对\(2\)取模 结论\(:\)黑色石子严格大于白色个 ...
- JavaScript 里三个点 ...,可不是省略号啊···
摘要:Three dots ( - ) in JavaScript. 本文分享自华为云社区<JavaScript 里三个点 ... 的用法>,作者: Jerry Wang . Rest P ...
- docker启动失败问题
内核3.10,systemctl start docker 被阻塞,没有返回,查看状态为启动中. 某兄弟机器安装docker之后,发现systemctl start docker的时候阻塞,由于排查走 ...
- 弹簧高跷题解---双向DP---DD(XYX)的博客
三 . 弹簧高跷 时间限制: 1 Sec 内存限制: 128 MB 题目描述.输入.输出 ----------- 方法 这道题用DP是可以解决的.因为每一次跳跃都与前一次跳跃有关, ...
- ELK技术-Logstash
1.背景 1.1 简介 Logstash 是一个功能强大的工具,可与各种部署集成. 它提供了大量插件,可帮助业务做解析,丰富,转换和缓冲来自各种来源的数据. Logstash 是一个数据流引擎 它是用 ...
- Altium Designer 18学习
目录 目录 快捷键 通孔 敷铜 修改铜皮与导线之间的间隔 去除指定敷铜区域 DRC设计规则检查问题: 快捷键 EJC 快速跳转到器件 M 移动 CTRL+M 测量距离 通孔 敷铜 放置多边形平面 -- ...
- 【设计模式】Java设计模式 - 观察者模式
[设计模式]Java设计模式 - 观察者模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 @一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长 ...
- uniapp小程序新版授权登录
1.授权按钮: <view> <button class='login-btn' type='primary' @click="bindGetUserInfo"& ...
- RedHat Linux升级内核
操作系统:Red Hat 6.4 内核文件:linux-3.10.1.tar.gz https://www.cnblogs.com/cherish-sweet/p/newyum.html uname ...
- 关于指针初始化为NULL的一些问题
关于指针初始化问题,先看以下代码: #include <stdio.h>typedef struct{ char data[128]; int top;} Stack;voi ...