C++结构体数组的举例和分析

本文介绍了一个C++程序,展示了如何创建结构体数组employee,存储员工信息,以及如何实现显示所有员工数据和查找最高工资记录的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先先把源码附上

#include<iostream>
using namespace std;
#define N 4
struct employee
{
	char num[10];
	char name[10];
	double salary;
};
struct employee emp[N]={{"1001","李明",2800},{"1002","王芳",5000 },{"1003","王强",3600 },{"1004","刘刚",4500 }};
void show()
{
	cout<<"显示具有employee结构的"<<N<<"个记录:"<<endl;
	for(int i=0;i<N;i++)
	{
		cout<<emp[i].num<<emp[i].name<<emp[i].salary<<endl;
	}
	cout<<endl;
}
void find()
{
	int k=0;
	float x=emp[0].salary;
	for(int i=1;i<N;i++)
	{
		if(emp[i].salary>x)
		{
			x=emp[i].salary;
			k=i;
		}
	}
	cout<<"显示结构体数组中具有最大工资值的记录:"<<endl;
	cout<<emp[k].num<<emp[k].name<<emp[k].salary<<endl; 
}
int main()
{
	show();
	find();
	return 0;
}

这是一个输出结构体数组employee中所有员工的数据,并查找出工资最高的员工记录的举例

然后就开始代码分析

首先,下面是对每个语句的解释:

#include <iostream>


引入头文件iostream,使得可以使用C++的输入输出流。

using namespace std;


使用命名空间std,这里包含了C++标准库中的所有函数。

#define N 4


使用#define宏定义N为4。

struct employee
{
    char num[10];
    char name[10];
    double salary;
};


定义结构体employee,其中包含员工编号、员工姓名和员工工资三个成员变量。

struct employee emp[N]={{"1001","李明",2800},{"1002","王芳",5000 },{"1003","王强",3600 },{"1004","刘刚",4500 }};


定义结构体数组emp,其中包含4个元素,每个元素都是一个employee类型的结构体,包含员工编号、员工姓名和员工工资三个成员变量,并依次初始化。

void show()
{
    cout<<"显示具有employee结构的"<<N<<"个记录:"<<endl;
    for(int i=0;i<N;i++)
    {
        cout<<emp[i].num<<" "<<emp[i].name<<" "<<emp[i].salary<<endl;
    }
    cout<<endl;
}


自定义函数show(),输出emp数组中的元素。for循环遍历数组,分别输出每个元素的num、name和salary成员变量。

void find()
{
    int k=0;
    float x=emp[0].salary;
    for(int i=1;i<N;i++)
    {
        if(emp[i].salary>x)
        {
            x=emp[i].salary;
            k=i;
        }
    }
    cout<<"显示结构体数组中具有最大工资值的记录:"<<endl;
    cout<<emp[k].num<<" "<<emp[k].name<<" "<<emp[k].salary<<endl; 
}


自定义函数find(),用于遍历emp数组中的元素,找到其中salary最大的元素,并输出其num、name和salary成员变量。使用x保存当前最大工资值,k保存当前最大工资值对应的员工下标。

int main()
{
    show();
    find();
    return 0;
}


主函数,调用了show()函数和find()函数,然后返回0。

程序执行结果如下:

大致分析就是这样,希望这一简单的举例能帮到大家

然后补充一下;结构体数组初始化的一般形式为

[struct] 结构体名 结构体数组名[常量表达式]={初值};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值