结构体数组(如何定义结构体数组及使用)

IT技术2年前 (2022)发布 投稿用户
0

定义:该数组的每个元素都是一个结构体。

结构体数组的初始化及直接输出方法:
*问题描述:结构体数组的正确初始化及输出
*输入描述:;
*程序输出:
*/
#include<stdio.h>
#include<string.h>
structstudent
{
intnum;
charname[20];
charsex;
intage;
floatscore;
charaddr[30];
};
intmain()
{
inti;
structstudentstu[3]={{10101,"LiuHu",'F',18,99.7,"beijingroad"},{10102,"NaoDan",'M',17,99.8,"shanghairoad"},{10103,"MaHuangTeng",'F',48,99.9,"shenzhenroad"}};
for(i=0;i<3;i++)
{
printf("%d%s%c%d%1f%sn",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score,stu[i].addr);
}
return0;

结构体数组


如何定义结构体数组及使用

一个结构体变量可以存放一个学生的一组信息,可是如果有10个学生呢?难道要定义10个结构体变量吗?难道上面的程序要复制和粘贴10次吗?
很明显不可能,这时就要使用数组。结构体中也有数组,称为结构体数组。它与前面讲的数值型数组几乎是一模一样的,只不过需要注意的是,结构体数组的每一个元素都是一个结构体类型的变量,都包含结构体中所有的成员项。
定义结构体数组的方法很简单,同定义结构体变量是一样的,只不过将变量改成数组。或者说同前面介绍的普通数组的定义是一模一样的,如:
structSTUDENTstu[10];
这就定义了一个结构体数组,共有10个元素,每个元素都是一个结构体变量,都包含所有的结构体成员。
结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素。
下面编写一个程序,编程要求:从键盘输入5个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。

结构体数组


#include<stdio.h>
#include<string.h>
structSTU
{
charname[20];
intage;
charsex;
charnum[20];
};
voidOutputSTU(structSTUstu[5]);//函数声明,该函数的功能是输出学号最大的学生信息
intmain(void)
{
inti;
structSTUstu[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);/*%c前面要加空格,不然输入时会将空格赋给%c*/
}
OutputSTU(stu);
return0;
}
voidOutputSTU(structSTUstu[5])
{
structSTUstumax=stu[0];
intj;
for(j=1;j<5;++j)
{
if(strcmp(stumax.num,stu[j].num)<0)//strcmp函数的使用
{
stumax=stu[j];
}
}
printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:%sn",stumax.name,stumax.age,stumax.sex,stumax.num);
}

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章