9.这个练习让您编写处理数组和结构的函数。下面是程序的框架,请提供其中描述的函数,以完成该程序。
// getinfo() has two arguments: a pointer to the first element of
// an array of student structures and an int representing the
// number of elements of the array. The function solicits and
// stores data about students. It terminates input upon filling
// the array or upon encountering a blank line for the student
// name. The function returns the actual number of array elements
// filled.
int getinfo(student pa[], int n)
{
int num_array_elem = n;
char tmp[SLEN];
for (unsigned i = 0; i < n; ++i) {
cout << "输入姓名:";
cin.getline(tmp, SLEN);
bool blank_line = true;
for (unsigned j = 0; j < strlen(tmp); ++j) {
if (!isspace(tmp[j])) {
blank_line = false;
break;
}
}
if (blank_line) {
num_array_elem = i;
break;
}
strcpy_s(pa[i].fullname,sizeof(tmp), tmp);
cout << "输入兴趣:";
cin.getline(pa[i].hobby, SLEN);
cout << "输入面向对象程序设计能力的级别:";
cin >> pa[i].ooplevel;
cin.get();
}
return (num_array_elem);
}
显示函数1,结构体传参
// display1() takes a student structure as an argument
// and displays its contents
void display1(student st)
{
cout << st.fullname << '\t' << st.hobby << '\t' << st.ooplevel << endl;
}
显示函数2,结构体指针传参
// display2() takes the address of student structure as an
// argument and displays the structure’s contents
void display2(const student* ps)
{
cout << ps->fullname << '\t' << ps->hobby << '\t' << ps->ooplevel << endl;
;
}
显示函数3,结构体数组传参
// display3() takes the address of the first element of an array
// of student structures and the number of array elements as
// arguments and displays the contents of the structures
void display3(const student pa[], int n)
{
for (unsigned i = 0; i < n; ++i) {
cout << pa[i].fullname << '\t' << pa[i].hobby << '\t' << pa[i].ooplevel << endl;
}
}
函数传参主要就是这几种参数,所以这里大家一定要学习好
Ok