1.每名老师带5名学生,共三名老师,需求如下:
设计学生和老师的结构体,老师结构体中有:老师姓名,存放5名学生的结构体数组
作为成员的学生有姓名 分数 ,创建数组存放三名老师,通过函数给每个老师及所带
的学生赋值,最终打印老师数据和老师所带学生的数据。
#include
#include
#include
using namespace std;
struct student {
int score;
string sname;
};
struct teacher {
string tname;
student arrStu[5];
};
void printInfo(teacher tarr[],int len)
{
for (int i = 0; i < len; i++)
{
cout << "老师姓名: " << tarr[i].tname << endl;
for (int j = 0; j < 5; j++)
{
cout << "t学生姓名: " << tarr[i].arrStu[j].sname
<< "考试分数: "< } } } void allocateSpace(teacher tarr[],int len) { string nameSeed = "ABCDE"; for (int i = 0; i < len; i++) { tarr[i].tname = "Teacher_"; tarr[i].tname += nameSeed[i];//非常重要的动态关联技巧 //给这名老师的五名学生赋值 for (int j = 0; j < 5; j++) { tarr[i].arrStu[j].sname="Student_"; tarr[i].arrStu[j].sname += nameSeed[j]; int random = rand() % 61+40; tarr[i].arrStu[j].score = random; } } } int main() { //随机数种子 srand((unsigned)time(NULL)); //创建三名老师的数组 teacher tarr[3]; //通过函数给3名老师赋值 int len = sizeof(tarr) / sizeof(tarr[0]);//非常重要的动态关联技巧 allocateSpace(tarr, len); //打印所有老师即学生的信息 printInfo(tarr, len); system("pause"); return 0; } 2.将结构体数组中的元素按年龄使用冒泡算法升序排序 #include #include using namespace std; struct hero { string name; int age; string sex; }; void bubbleSort(hero heroArr[], int len)//等价于hero* heroarr!!! { for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - i - 1; j++) { if (heroArr[j].age > heroArr[j + 1].age) { hero temp = heroArr[j + 1]; heroArr[j+1] = heroArr[j]; heroArr[j] = temp; } } } } void printHero(hero heroArr[], int len) { for (int i = 0; i < len; i++) { cout << "姓名: " << heroArr[i].name << "年龄: " << heroArr[i].age << "性别: " << heroArr[i].sex << endl; } } int main() { hero heroArr[5] = { {"刘备",23,"男"}, {"关羽",22,"男"}, {"张飞",20,"男"}, {"赵云",21,"男"}, {"貂蝉",19,"女"} }; int len = sizeof(heroArr) / sizeof(heroArr[0]); bubbleSort(heroArr,len );//??? printHero(heroArr, len); system("pause"); return 0; }



