当前位置: 首页 > news >正文

【C语言】结构体(二)

一,结构体的初始化

和其它类型变量一样,对结构体变量可以在定义时指定初始值

4831b5b9e5304ef6ad93eaceed393bab.png

#include <stdio.h>
#include <stdlib.h>
struct books    // 结构体类型
{char title[50];char author[50];    //结构体成员char subject[100];int book_id;
}book = { "C 语言","zhangsan","编程语言",12345 };  //结构体变量的初始化
int main()
{printf("title : %s\nauthor: %s\nsubject: %s\nbook_id: %d\n", book.title, book.author, book.subject, book.book_id);return 0;
}

二,结构体成员的访问

1,访问手段:使用成员访问运算符(.)用一个点来访问

2,访问手段的使用:<结构体类型变量名> . <成员名> 结构体名 点 成员名

2d2f8fbe782a47269152bb9c22d85610.png

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct           // 无标签名,匿名结构体
{char name[20];  //姓名int num;     //学号int age;     //年龄char group;   // 所在小组float score;  // 成绩
}stu1;            // 结构体变量int main()
{// 给结构体成员赋值stu1 = { "zhangsan",1,20,'A',149.5f };printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.1f\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);return 0;
}

注:结构体是一种自定义的数据类型,是创建变量的模板不占用内存空间结构体变量包含了实实在在的数据需要内存空间来存储。

三,结构体数组

1,是什么?

答:数组中的每一个元素都是结构体(元素是结构体)

2,为什么(要有)?

用来表示一个拥有相同数据结构的群体

3,怎么做?

答:如图所示

9c73cbf09ee9480c8d72996d80d9841c.png

是什么中:

数组指的是一个班级

每一个元素指的是一个班的不同学生

结构体指的是不同学生的信息

为什么中:

相同数据结构指的是不同学生的信息的种类

注:

结构体数组在定义的同时也可以初始化

对数组中全部元素赋值时,也可以不给出数组长度

 

练习题:计算全班学生的总成绩、平均成绩和140分一下的人数

ad1a162bf119487fb6fb0e1ad2dc7e0c.png

#include <stdio.h>
#include <stdlib.h>
struct stu
{char name[20];int num;int age;char group;float score;
} ban[5] = {{"xing",5,18,'c',145.0},{"ao",4,19,'a',130.5},{"sheng",1,18,'a',148.5},{"pei",2,17,'f',139.0},{"yuan",3,17,'b',144.5}
};      // 表示一个班有5个人
int main()
{int i, num_140 = 0;float sum = 0;for (i = 0; i < 5; i++) {sum += ban[i].score;if (ban[i].score < 140) num_140++;}printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum / 5, num_140);return 0;
}

未完待续。。。


http://www.mrgr.cn/news/78864.html

相关文章:

  • 【人工智能】Python与强化学习:从零实现多臂老虎机(Multi-Armed Bandit)问题
  • bcm教师课程学习
  • 说说Elasticsearch拼写纠错是如何实现的?
  • 「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器
  • linux查询进程的启动时间
  • 【Spring源码核心篇-07】spring事物传播机制的流程和原理
  • Hot100 - 二叉树的中序遍历
  • 利用市场分析工具对特定国家的产品市场情况进行深入分析的全面指南
  • 无需U盘引导!快速在实体机上安装黑群晖 DSM 7.2(一步到位!黑群晖 DSM 7.2 内置硬盘引导安装教程)
  • Kafka-Connect自带示例
  • Maven学习
  • 力扣题解14——最长公共前缀
  • ThinkPHP Nginx 重写配置
  • 【老白学 Java】抽象类和抽象方法
  • 【UE5 C++】判断两点连线是否穿过球体
  • 基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
  • 【NLP 4、数学基础】
  • 【软考速通笔记】系统架构设计师⑤——软件工程基础知识
  • Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录
  • HarmonyOS
  • winform跨线程更新界面
  • Kafka常用的一些命令
  • QT去除窗口边框(无边框)
  • Java中 HttpURLConnection 和 HttpClient 详解(初学者友好)
  • oracle中删除指定前缀的表
  • Web API基本认知