本小白在做题目:一个老师带五个学生,一共三位老师,要求输出老师与学生各项数据。之前用值传递去做没出问题,但是用指针做老师和学生的名字都一样(用字母命名,老师都是c,学生都是e)
代码如下:
#include<iostream>
#include<string>
using namespace std;
struct Student{//学生的结构体
string sname;
int score;
};
struct Teacher{//老师的结构体
string tname;
struct Student studentarr[5];
};
void fx1(struct Teacher *p1){//用以对老师与学生的各项数据赋值
string nameseed="ABCDE";
for(int i=0;i<3;i++){
p1->tname="Teacher-";
p1->tname+=nameseed[i];
for(int j=0;j<5;j++){
p1->studentarr->sname="Student-";
p1->studentarr->sname+=nameseed[j];
p1->studentarr->score=100;
}
}
}
void fx2(struct Teacher *p1){//输出函数
for(int i=0;i<3;i++){
cout<<"The teacher's name is"<<p1->tname<<endl;
for(int j=0;j<5;j++){
cout<<"The student's name is"<<p1->studentarr->sname<<
"The student's socre is"<<p1->studentarr->score<<endl;
}
}
}
int main(){
struct Teacher teacherarr[3];
fx1(teacherarr);
fx2(teacherarr);
return 0;
}