C++primer plus第六版课后编程题答案7.9
7.9
#include <iostream> using namespace std; const int SLEN=30; struct student{ char fullname[SLEN]; char hobby[SLEN]; int ooplevel; }; int getinfo(student pa[],int n); void display1(student st); void display2(const student *ps); void display3(const student pa[],int n); void main79() { cout<<"Enter class size: "; int class_size; cin>>class_size; while(cin.get()!='\n') continue; student *ptr_stu=new student[class_size]; int entered=getinfo(ptr_stu,class_size); for(int i=0;i<entered;i++) { display1(ptr_stu[i]); display2(&ptr_stu[i]); } display3(ptr_stu,entered); delete ptr_stu; cout<<"Done\n"; system("pause"); } int getinfo(student pa[],int n) { int count=0; for(int i=0;i<n;i++) { cout<<"Please enter the fullname:"; cin>>pa[i].fullname; cout<<"\nPlease enter the hobby:"; cin>>pa[i].hobby; cout<<"\nPlease enter the ooplevel:"; cin>>pa[i].ooplevel; count++; } cout<<"\nEnter end!"; return count; } void display1(student st) //按值传递 { cout<<"\ndisplay1:FullName:"<<st.fullname<<"\nhobby:"<<st.hobby <<"\nooplevel:"<<st.ooplevel<<endl; } void display2(const student *ps) //传递地址,引用 { cout<<"\ndispaly2:FullName:"<<ps->fullname<<"\nhobby:"<<ps->hobby <<"\nooplevel:"<<ps->ooplevel<<endl; } void display3(const student pa[],int n) { cout<<"\ndispaly3:"<<endl; for(int i=0;i<n;i++) cout<<i<<"::FullName:"<<pa[i].fullname<<"\nhobby:"<<pa[i].hobby <<"\nooplevel:"<<pa[i].ooplevel<<endl; }