iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言结构体数组怎么定义和使用
  • 403
分享到

C语言结构体数组怎么定义和使用

2023-06-25 22:06:51 403人浏览 独家记忆
摘要

这篇文章主要讲解了“C语言结构体数组怎么定义和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言结构体数组怎么定义和使用”吧!介绍一个结构体变量可以存放一个学生的一组信息,可是如果有

这篇文章主要讲解了“C语言结构体数组怎么定义和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言结构体数组怎么定义和使用”吧!

介绍

一个结构体变量可以存放一个学生的一组信息,可是如果有 10 个学生呢?难道要定义 10 个结构体变量吗?难道上面的程序要复制和粘贴 10 次吗?

很明显不可能,这时就要使用数组。结构体中也有数组,称为结构体数组。它与前面讲的数值型数组几乎是一模一样的,只不过需要注意的是,结构体数组的每一个元素都是一个结构体类型的变量,都包含结构体中所有的成员项。

定义结构体数组的方法很简单,同定义结构体变量是一样的,只不过将变量改成数组。或者说同前面介绍的普通数组的定义是一模一样的,如:

struct STUDENT stu[10];

这就定义了一个结构体数组,共有 10 个元素,每个元素都是一个结构体变量,都包含所有的结构体成员。

结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用 for 循 环一个一个地使用结构体数组中的元素。

下面编写一个程序,编程要求:从键盘输入 5 个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。

# include <stdio.h># include <string.h>struct STU{    char name[20];    int age;    char sex;    char num[20];};void OutputSTU(struct STU stu[5]);  //函数声明, 该函数的功能是输出学号最大的学生信息int main(void){    int i;    struct STU stu[5];    for (i=0; i<5; ++i)    {        printf("请输入第%d个学生的信息:", i+1);        scanf ("%s%d %c%s", stu[i].name, &stu[i].age, &stu[i].sex, stu[i].num);    }    OutputSTU(stu);    return 0;}void OutputSTU(struct STU stu[5]){    struct STU stumax = stu[0];    int j;    for (j=1; j<5; ++j)    {        if (strcmp(stumax.num, stu[j].num) < 0)  //strcmp函数的使用        {            stumax = stu[j];        }    }    printf("学生姓名:%s 学生年龄:%d 学生性别:%c 学生学号:%s\n", stumax.name, stumax.age, stumax.sex, stumax.num);}

输出结果是:

请输入第1个学生的信息:小红 22 F Z1207031

请输入第2个学生的信息:小明 21 M Z1207035

请输入第3个学生的信息:小七 23 F Z1207022

请输入第4个学生的信息:小欣 20 F Z1207015

请输入第5个学生的信息:小天 19 M Z1207024

学生姓名:小明 学生年龄:21 学生性别:M 学生学号:Z1207035

结构体数组定义时初始化

结构体数组的初始化与前面讲的数值型数组的初始化是一模一样的,数值型数组初始化的方法和需要注意的问题在结构体数组的初始化中同样适用,因为不管是数值型数组还是结构体数组都是数组。下面就将前面的一个程序修改一下。

# include <stdio.h># include <string.h>struct STU{    char name[20];    int age;    char sex;    char num[20];};void OutputSTU(struct STU stu[5]);  //函数声明int main(void){    struct STU stu[5] = {{"小红", 22, 'F', "Z1207031"}, {"小明", 21, 'M', "Z1207035"}, {"小七", 23, 'F', "Z1207022"}, {"小欣", 20, 'F', "Z1207015"}, {"小天", 19, 'M', "Z1207024"}};    OutputSTU(stu);    return 0;}void OutputSTU(struct STU stu[5]){    struct STU stumax = stu[0];    int j;    for (j=1; j<5; ++j)    {        if (strcmp(stumax.num, stu[j].num) < 0)        {            stumax = stu[j];        }    }    printf("学生姓名:%s 学生年龄:%d 学生性别:%c 学生学号:%s\n", stumax.name, stumax.age, stumax.sex, stumax.num);}

输出结果是:

学生姓名:小明 学生年龄:21 学生性别:M 学生学号:Z1207035

注意,字符要用单引号括起来,字符串要用双引号括起来。

补充

C语言结构体数组示例演示

【示例】计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。

#include <stdio.h>struct{    char *name;  //姓名    int num;  //学号    int age;  //年龄    char group;  //所在小组    float score;  //成绩}class[] = {    {"Li ping", 5, 18, 'C', 145.0},    {"Zhang ping", 4, 19, 'A', 130.5},    {"He fang", 1, 18, 'A', 148.5},    {"Cheng ling", 2, 17, 'F', 139.0},    {"Wang ming", 3, 17, 'B', 144.5}};int main(){    int i, num_140 = 0;    float sum = 0;    for(i=0; i<5; i++){        sum += class[i].score;        if(class[i].score < 140) num_140++;    }    printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140);    return 0;}

运行结果:

sum=707.50

average=141.50

num_140=2

感谢各位的阅读,以上就是“C语言结构体数组怎么定义和使用”的内容了,经过本文的学习后,相信大家对C语言结构体数组怎么定义和使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言结构体数组怎么定义和使用

本文链接: https://www.lsjlt.com/news/306347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言结构体数组怎么定义和使用
    这篇文章主要讲解了“C语言结构体数组怎么定义和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言结构体数组怎么定义和使用”吧!介绍一个结构体变量可以存放一个学生的一组信息,可是如果有 ...
    99+
    2023-06-25
  • C语言结构体数组的定义和使用详解
    目录介绍结构体数组定义时初始化补充介绍 一个结构体变量可以存放一个学生的一组信息,可是如果有 10 个学生呢?难道要定义 10 个结构体变量吗?难道上面的程序要复制和粘贴 10 次吗...
    99+
    2022-11-12
  • c语言中怎么使用typedef定义结构体
    在C语言中,可以使用typedef关键字来定义结构体,使得结构体的类型名称更加简洁易用。以下是使用typedef定义结构体的一般形式...
    99+
    2023-08-15
    c语言 typedef
  • 详解C语言结构体的定义和使用
    目录1.1:结构体用来干嘛?1.2:结构体变量的基本定义格式1.3:结构体变量的定义1.4结构体变量的三种引用方法2.结构体变量的使用(直接使用结构体变量)2.1输出结果3....
    99+
    2022-11-12
  • C语言中怎么在结构体内定义函数
    这篇“C语言中怎么在结构体内定义函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中怎么在结构体内定义函数”文章吧。如...
    99+
    2023-07-05
  • C语言 - 结构体、结构体数组、结构体指针和结构体嵌套
    结构体的意义 问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用 C 语言程序存储并处理一组学生的学籍。 单个学生学籍的数据结构: 学号(num): int 型姓名(name) :char [ ] 型性别(sex):c...
    99+
    2023-08-30
    c语言 开发语言
  • 怎么在C语言中自定义结构体和枚举
    这篇文章将为大家详细讲解有关怎么在C语言中自定义结构体和枚举,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使...
    99+
    2023-06-14
  • 如何进行C语言结构体的定义和使用
    本篇文章为大家展示了如何进行C语言结构体的定义和使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.1: 结构体用来干嘛生活中我们会遇到很多的表格,就比如你的学习成绩表,有姓名 ,学号,各科的成绩...
    99+
    2023-06-22
  • 怎么在C语言中使用多维数组和结构体
    本篇内容介绍了“怎么在C语言中使用多维数组和结构体”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目:有一个颜色集合,里面有若干个颜色值(R...
    99+
    2023-06-08
  • C语言中使用qsort函数对自定义结构体数组进行排序
    目录使用qsort函数对自定义结构体数组进行排序结构体排序函数总体代码C语言 qsort()函数详解1、qsort概念介绍2、qsort()函数实现(循序渐进式讲解)3、小结使用qs...
    99+
    2022-11-16
    C语言qsort函数 qsort对结构体数组排序 自定义结构体数组排序
  • C语言中如何在结构体内定义函数
    目录如何在结构体内定义函数结构体中引入函数C++中结构体引入C++中类引入结构体成员有函数的定义与使用总结如何在结构体内定义函数 结构体中引入函数 #include <stdi...
    99+
    2023-02-24
    C语言结构体 C语言结构体定义函数 C语言定义函数
  • C语言中的结构体和共用体怎么使用
    这篇文章主要介绍了C语言中的结构体和共用体怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中的结构体和共用体怎么使用文章都会有所收获,下面我们一起来看看吧。结构体 / struct结构体的定义声明一...
    99+
    2023-06-16
  • C语言一维数组怎么定义和使用
    在C语言中,一维数组的定义和使用如下:1. 定义一维数组:- 声明数组的类型和名称,例如:int arr[5];- 可以在声明时同时...
    99+
    2023-10-10
    c语言
  • c语言结构体数组的用法是什么
    在C语言中,结构体数组是一种特殊的数据类型,可以用于存储和操作多个结构体对象。结构体数组由多个相同类型的结构体对象组成,每个对象可以...
    99+
    2023-10-27
    c语言
  • C语言之结构体定义typedef struct用法详解
    在C语言中,使用struct关键字可以定义一个结构体类型,用于存储不同类型的数据。为了方便使用,可以使用typedef关键字给结构体...
    99+
    2023-08-09
    C语言
  • C语言中的结构体怎么使用
    这篇文章主要讲解了“C语言中的结构体怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的结构体怎么使用”吧!一、关于结构体在C语言中,结构体(struct)指的是一种数据结构,是...
    99+
    2023-06-16
  • c语言结构体指针数组怎么初始化
    在C语言中,结构体指针数组的初始化可以通过以下几种方式进行: 逐个初始化:通过逐个为每个元素赋值。例如: struct Pers...
    99+
    2023-10-27
    c语言
  • C语言结构体中的char数组怎么赋值
    这篇文章主要介绍了C语言结构体中的char数组怎么赋值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前景提示定义一个结构体,结构体中有两个变量,其中一个是char类型的数组,...
    99+
    2023-06-29
  • 如何在C语言中使用多维数组和结构体
    如何在C语言中使用多维数组和结构体?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1887 颜色精简题目:有一个颜色集合,里面有若干个颜色值(RBG系统表示)。现...
    99+
    2023-06-15
  • c语言数组怎么定义和赋值
    在C语言中,可以使用以下方式来定义和赋值数组:1. 静态数组:- 定义数组:`数据类型 数组名[数组长度];`- 赋值数组元素:`数...
    99+
    2023-09-20
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作