1004结构体

#include<stdio.h>
struct student{
char name[15];
char xh[20];
int fs;
}student[1000];
int main()
{
int n,max=0,min=0,i;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",student[i].name);
scanf("%s",student[i].xh);
scanf("%d",&student[i].fs);

if(student[i].fs > student[max].fs) max = i;  
if(student[i].fs < student[min].fs) min = i;  
}
printf("%s %s\n", student[max].name, student[max].xh);  
    printf("%s %s\n", student[min].name, student[min].xh);  
}

### C语言结构体数组的定义与使用 #### 定义结构体数组 在C语言中,定义结构体数组的过程类似于定义单个结构体变量,只是需要指定数组大小。通过以下方式可以创建一个名为`stu`的结构体,并基于此结构体定义一个包含五个元素的数组`class`: ```c struct stu { char *name; // 姓名 int num; // 学号 int age; // 年龄 char group; // 所在小组 float score;// 成绩 } class[5]; // 表示班级中有五名学生[^1] ``` 上述代码片段展示了如何声明一个由五个`stu`类型的成员组成的数组。 #### 初始化结构体数组 初始化结构体数组可以在声明的同时完成,也可以逐个赋值给各个字段。以下是两种不同的初始化方法: - **一次性初始化** ```c struct stu class[5] = { {"Alice", 1001, 20, 'A', 89.5}, {"Bob", 1002, 21, 'B', 78.0} /* ... */ }; ``` - **逐步初始化** ```c strcpy(class[0].name, "Charlie"); class[0].num = 1003; class[0].age = 22; class[0].group = 'C'; class[0].score = 92.5; strcpy(class[1].name, "Diana"); class[1].num = 1004; class[1].age = 23; class[1].group = 'D'; class[1].score = 86.0; ``` 注意,在实际编程实践中,对于字符串成员应当谨慎处理内存分配问题,这里为了简化说明忽略了这部分细节[^2]。 #### 访问结构体数组中的数据 访问结构体数组内的特定项可以通过索引来实现。例如,要打印第一个学生的姓名和分数,则可执行如下操作: ```c printf("Student Name: %s\nScore: %.2f\n", class[0].name, class[0].score); ``` 同样地,遍历整个数组并显示所有记录也是可行的: ```c for (int i = 0; i < 5; ++i) { printf("Name:%s Num:%d Age:%d Group:%c Score:%.2f\n", class[i].name, class[i].num, class[i].age, class[i].group, class[i].score); } ``` 以上就是关于C语言中结构体数组的基础概念以及基本的操作指南[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值