struct(结构体)
在实际问题中,一组数据往往具有不同的数据类型。
例如, 在学生登记表中,姓名应为字符型(char[]);学号可为整型(int)或字符型(char[]);年龄应为整型(char);性别应为字符型(char);成绩可为整型(int)或实型(double)。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。
“结构”是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。
1.定义结构体及结构体变量
结构体的一般形式:
struct 结构体类型名//struct是关键字
{
成员表;//可以有多个
成员函数;//可以有也可以没有
}结构变量量表;//可以同时定义多个结构体变量用“,”隔开,另外结构变量表后面的“;”不能漏掉。例如:
struct student//定义一个名叫student的struct类型
{string name;//定义名字int chinese;//定义语文成绩int math;//定义数学成绩int total;//定义总成绩
}a[111];//同时定义了a的数组变量
//也可以下面这样:
struct student
{string name;int chinese;int math;int total;
};
student a[111];//这里同样可以定义多个结构体变量
2.结构体变量的特点
3.成员调用
4.成员函数调用
5.sort排序的使用
{
return x.结构体变量名>y.结构体变量名;
}
bool cmp(struct x,struct y)
{return x.total>y.total;
}
5.struct的内存储存方式
struct A
{ char a; //char占1个字节 int b; //int 占4个字节 short c; //short占2个字节
};
那么结构体A是否占1+4+2=7个字节的内存大小呢,7个似乎很合理,但事实上,为了兼容各种不同的硬件,结构体内存分配采用特定字节对齐方式。
6.题目解释
liujia 90 87 77 254
tom 89 87 78 254
wangxi 70 99 69 238
zhangjin 78 91 67 236
#include<bits/stdc++.h>//万能头文件
using namespace std;
struct A
{string name;//姓名int chinese;//语文int math;//数学int english;//英语int total;//总成绩int num;//序号
}s[101];//结构体
bool cmp(A x,A y)//判断比较
{return x.total==y.total? (x.math==y.math? x.num<y.num:x.math>y.math):x.total>y.total;//判断 按总分从高到低排序,总分数相同按数学成绩的高低排序,两者相同按输入顺序排序。
}
int main()
{int n;cin>>n;for(int i=1;i<=n;++i)//输入{cin>>s[i].name>>s[i].chinese>>s[i].math>>s[i].english;s[i].total=s[i].chinese+s[i].math+s[i].english;s[i].num=i;}sort(s+1,s+n+1,cmp);for(int i=1;i<=n;++i)//输出{cout<<s[i].name<<" ";cout<<s[i].chinese<<" ";cout<<s[i].math<<" ";cout<<s[i].english<<" ";cout<<s[i].total<<endl;}return 0;
}
struct(结构体)相关推荐
- 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组...
一.程序 现实生活中,程序是指完成某些事务的一种既定方法和过程,可以把程序看成是一系列动作执行过程的描述. 在计算机世界,程序是指令,即为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集 ...
- c/c++教程 - 1.10 结构体 使用typedef定义struct结构体 结构体数组 结构体指针 结构体嵌套 结构体做函数参数 结构体const
十二.结构体 (1)结构体定义和使用 基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型. 参考视频:https://www.bilibili.com/video/BV1et411b ...
- C/C++中struct结构体定义变量的3种方法及初始化
本博客整理自http://blog.csdn.net/zunfo/article/details/51494631 1.struct结构体定义 1.1.先定义结构体,然后再定义结构体变量 struct ...
- Go语言核心之美 3.4-Struct结构体
struct(结构体)也是一种聚合的数据类型,struct可以包含多个任意类型的值,这些值被称为struct的字段.用来演示struct的一个经典案例就是雇员信息,每条雇员信息包含:员工编号,姓名,住 ...
- Hive基础08、Hive引入Struct结构体
Hive基础08.Hive引入Struct结构体 1.建表语句 创建一个温良贤淑女子的表 英文关键字解析: 1.CREATE TABLE 创建一个指定名字的表,如果库中已有相同名的表,则抛出异常: 用 ...
- struct结构体扩展-成员函数
struct结构体扩展-成员函数 在C++中,允许在结构中定义函数,该函数被称为成员函数,描述形式如下: struct 结构名{数据成员成员函数 } 例题描述: 输入n个学生的信息,每个学生信息包括姓 ...
- (转载)虚幻引擎3--【UnrealScript教程】章节一:11.Struct结构体
UnrealScript struct是把一组变量一起塞入到一个新类型称为struct的超级变量的一种方法.UnrealScript structs和C语言中的结构体很像,它可以包含变量.数组及其它的 ...
- 597-Golang的类型声明、struct结构体
类型声明 type name 定义type (name 定义name2 定义2 ) 因为本质上是int,默认值是0 因为本质上就是int类型,shuzi和int没有区别 type也可以批量化声明 st ...
- 定义struct结构体数组
题目要求: 有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果. 解题思路: 设一个结构体数组,数组中包含3个元素 每个元素中的信息应包括候选人 ...
- C语言-轻松掌握|struct结构体|知识点
目录 结构体的声明 1.结构体的基础知识 2.特殊的声明 3.结构体的自引用 了解数据结构-数据在内存的存储结构: 之前犯过一个错误案例 4.结构体变量的定义和初始化 定义和初始化 嵌套结构体 5 ...
最新文章
- Analytic Functions 分析函数(rank over)
- 美国公司欲联合大电脑商阻止绿坝推广
- CSS篇 第9章 Visual Formatting Model 部分翻译
- vs2010 rdlc 报表及报表控件
- 1053 Path of Equal Weigh(甲级)
- VMware vMotion 实时虚拟机迁移
- python 运算符重载_Python中类的运算符重载
- 985程序员4年50万仍被二本学医亲戚酸:学会这3点,才能笑到最后
- linux vim -b详解,linux vim
- OSG读取Tif格式的高程数据
- 图像数字水印技术研究及matlab实现,基于DFT的数字水印技术及MATLAB实现
- 院校-国外-美国:斯坦福大学( Stanford)
- Processing创意编程(熟练篇)
- trivial destructor
- 【C语言学习笔记】输出函数puts()
- Scipy_常用统计函数
- exlsx中定义名称步骤_excel定义名称详解
- [NewStarCTF] Word-For-You
- postgresql-COALESCE函数、NULLIF函数、NVL函数使用
- 微信小程序如何分享到朋友圈
热门文章
- Xrm.WebApi 多对多关系处理
- 『毒舌吐槽社区』-很多敏感内容,你懂的!
- 如何用p5js做一个可爱的鲶鲶并添加不倒翁效果
- Qt之简易的多功能小相册
- Bootstrap DataTable自定义表格 设置某列不排序
- ABAQUS中橡胶大变形问题的解决方案
- python中怎么撤回_python如何查看微信消息撤回
- Chinese-LLaMA-Alpaca:优秀的开源中文语言模型预训练工具
- python求1到n的奇数和_编写程序。输入任意整数n,计算1到n的奇数和。C语言编写程序 输入整数N 显...
- 添加https证书信任