C++结构体嵌套循环赋值打印

本文介绍了一个C++编程实例,涉及结构体数组的使用,包括学生和老师的结构体,以及如何通过嵌套循环为老师和学生结构体数组赋值和打印信息。函数`allocateSpace`用于赋值,`printarr`用于输出,程序演示了如何方便地处理这种数据结构。
摘要由CSDN通过智能技术生成

1. 学生结构体:姓名,分数

2. 老师结构体:姓名,学生数组(长度为5)

3. 功能:创建老师结构体数组,每个老师单元有一个学生数组,每个学生数组包括姓名和分数,函数1实现对老师和其学生信息的赋值,函数2实现对所有信息的打印

#include<iostream>
#include<string>
#include<ctime>
using namespace std;

struct Student {
	string name;
	int score;
};

struct Teacher {
	string name;
	//学生结构体数组
	Student arr[5];
};
void allocateSpace(Teacher* arr1, int length){
	string name = "ABCDE";
	for (int i = 0; i < length; i++)
	{
		arr1[i].name = "Teacher_";
		arr1[i].name = arr1[i].name + name[i];
		cout << "下面进行老师" << name[i] << "的学生的分数赋值" << endl;
		//学生赋值
		for (int j = 0; j < 5; j++)
		{
			//对学生分数一一赋值
			int score;
			cout << "学生" << name[j] << "的分数为:" << endl;
			cin >> score;
			arr1[i].arr[j].name = "Student_";
			arr1[i].arr[j].name = arr1[i].arr[j].name + name[j];
			arr1[i].arr[j].score = score;
		}
	}
}

void printarr(Teacher* arr1, int length) {
	
	system("pause");
	for (int i = 0; i < length; i++)
	{
		cout << arr1[i].name << endl;
		for (int j = 0; j < 5; j++)
		{
			cout << arr1[i].arr[j].name << " " << arr1[i].arr[j].score << endl;
		}
	}
}
int main() {
	//创建老师数组
	Teacher arr1[3] = {};
	//计算老师数组长度
	int length = sizeof(arr1) / sizeof(arr1[0]);
	//通过函数对结构体进行赋值
	allocateSpace(arr1, length);
	//打印输出函数
	printarr(arr1, length);
	system("pause");
	return 0;
}

一开始想先对学生赋值再把学生装到老师中,但都不如嵌套循环赋值方便。因此记录下来这个好方法。需要注意:

1. 函数的形参我都设置的是指针,传地址的

2. 注意循环嵌套时数组下标索引,老师对应的是i,学生对应的是j

只要不搞混,就很方便。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值