结构体相关
来源:互联网 发布:手机号定位追踪软件 编辑:程序博客网 时间:2024/06/06 12:46
结构体相关
结构体中的成员可以是各种类型的东西,比如普通变量,指针,数组,甚至是另外一个结构体或者是结构体自身,而结构体本身也可以被声明为各种类型。这就给结构体的应用带来了很大的灵活性.
定义/声明方式一:
struct 结构名{
类型 变量名;
类型 变量名;
...
} 结构变量;
struct structTemp{ char sex[5]; int num; struct structEmbed{ char name; int age[5]; }structTest; }structVar[10];
定义/声明方式二:
struct 结构名{
类型 变量名;
类型 变量名;
...
} ;
struct 结构名 结构变量;
struct structTemp{ char sex[5]; int num; struct structEmbed{ char name; int age[5]; }structTest; }; struct structTemp structVar[10];
示例:
有十位学生,现从键盘分别输入其学号,姓名,以及三门课的考试成绩。要求:求出每个同学的总分和平均成绩,并按总分从高到低排序,输出每个学生的信息(包括:学号,姓名,三门课的分数,平均分,总分)。
int main(void){ //例子 typedef struct student{ char num[6]; char name[8]; int score[3]; float avr; float total; }stu[10]; struct student stuTemp; //录入数据 for (int i = 0; i < 10; i ++) { float sum = 0; printf("\n请输入No.%d学生的分数\n",i+1); printf("学号:"); scanf("%s",stu[i].num); printf("姓名:"); scanf("%s",stu[i].name); for (int j = 0; j < 3; j ++) { printf("科目%d分数:",j+1); scanf("%d",&stu[i].score[j]); sum += stu[i].score[j]; } stu[i].avr = sum/3.0; stu[i].total = sum; } //按总分从大到小排序 for (int i = 0; i < 10; i ++) { for (int j = 0; j < 10; j ++) { if(stu[i].total < stu[j].total){ stuTemp = stu[i]; stu[i] = stu[j]; stu[j] = stuTemp; } } } //输出 for (int i = 0; i < 10; i ++) { printf("\n学号:%s 姓名:%s 科目1:%d 科目2:%d 科目3:%d 平均分:%.2f 总分:%.2f",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avr,stu[i].total); }}结构指针
结构指针是指向结构的指针,它由一个加在结构变量名前的“ * ”操作符来定义。
使用结构指针对结构成员的访问方式:
结构指针名 -> 结构成员
(*结构指针名).结构成员
stu -> total
(*stu).total
声明方式:
struct 结构名{
类型 变量名;
类型 变量名;
...
} *结构变量;
或:
struct 结构名{
类型 变量名;
类型 变量名;
...
} ;
0 0
- 结构体相关
- traincascade相关结构体
- 结构体相关概念
- USB相关结构体
- 结构体相关
- C语言:结构体相关
- 结构体的相关概念
- usb子系统相关结构体
- fb的相关结构体
- 预写式日志相关结构体
- Linux与时间相关的结构体及相关用法
- Linux与时间相关的结构体及相关用法
- Linux与时间相关的结构体及相关用法
- Linux与时间相关的结构体及相关用法
- linux驱动结构之class及相关结构体
- FrameBuffer系列 之 相关结构与结构体
- linux驱动结构之class及相关结构体
- linux驱动结构之class及相关结构体
- 逻辑回归与决策树在分类上的一些区别
- ios开发——NSCoding协议与NSUserDefaults相关
- ios开发——NSString与NSMutableString相关
- ios开发——NSArray与NSMutableArray相关
- ios开发——NSDictionary与NSMutableDictionary相关
- 结构体相关
- ios开发——协议&委托 相关
- [IOS]模拟器退软键盘 相关
- NYOJ 509 因子和阶乘
- C# 获取Windows开机时间
- 取消JSpinner的键盘编辑能力
- mongodb 常用命令
- 紧记 web.xml配置顺序影响结果.
- Chapter 2 | Linked Lists--查找循环链表中的环的开始结点