C的实用笔记40——结构体数组

1.结构体数组的定义及初始化

结构体数组看起来像二维数组,但并不是

#include 
struct Student
{
    int num;
    char name[32];
    char sex;
    int age;
    double score;
    char addr[32];
};
int main(int argc, char const *argv[])
{
    struct Student arr[3] = {
        {2,"张三",'M',17,98,"北京"},
        {3,"李四",'F',18,89.5,"上海"},
        {4,"王五",'M',18,100,"深圳"}
    };
    return 0;
}

2.结构体数组的遍历

1、知识点:

  1. 与计算数组长度相同,可以通过sizeof计算结构体数组长度
  2. 结构体数组每个元素都是结构体变量,因此也是用点运算符引用结构体变量的成员变量。

2、举例:

#include 
struct Student
{
    int num;
    char name[32];
    char sex;
    int age;
    double score;
    char addr[32];
};
int main(int argc, char const *argv[])
{
    int i;
    int len;
    struct Student arr[3] = {
        {2,"张三",'M',17,98,"北京"},
        {3,"李四",'F',18,89.5,"上海"},
        {4,"王五",'M',18,100,"深圳"}
    };
    len = sizeof(arr) / sizeof(arr[0]);
    for(i=0; i

3.习题

习题1:试完成选票系统,功能包括确定候选人、群众唱票、公布结果

  1. 思路:
    声明结构体1: struct Candidate { char name[32]; int tickets; };	代表候选人的名字和得票数
    1. 假设候选人有三个,定义一个结构体数组保存三人信息: struct Candidate xm[3]; 
    2. 假设不知道数组长度,需要用sizeof运算符计算数组长度,保存在变量len中: 
    	int len = sizeof(xm) / sizeof(xm[0]);
    //1.初始化环节
    3. for循环,代表结构体数组下标(第i个选民)的循环变量i从0开始,

  2. 代码:
    #include 
    #include 
    struct Candidate
    {
        char name[32];
        int tickets;
    };
    int main(int argc, char const *argv[])
    {
        struct Candidate xm[3];
        struct Candidate max;
        int i;
        int total = 5;                                      
        char tempName[32];
        int len = sizeof(xm) / sizeof(xm[0]);  
        int j;
        int mark;
        int invalidTickets = 0;
        /* 1.初始化,清空选票数,确认候选者 */
        for(i=0; i

你可能感兴趣的:(c语言)