C++ 结构体数组 引用类型作为函数形参时,编译错误,提示“引用”使用的不对
#include<iostream>usingnamespacestd;structstudent{charname[10];intnum;intscore[3];};i...
#include<iostream>
using namespace std;
struct student
{
char name[10];
int num;
int score[3];
};
int main()
{
void print(student &pstud[]);
student stu[5];
int i,j;
cout<<"input the students' information :\n";
cout<<"name num score"<<endl;
for(i=0;i<5;i++)
{
cin>>stu[i].name>>stu[i].num;
for(j=0;j<3;j++)
cin>>stu[i].score[j];
}
print(stu);
return 0;
}
void print(student &pstud[])///////////////结构体"引用"作为函数形参
{
int i,j;
for(i=0;i<5;i++)
{
cout<<"name :"<<(*(pstud+i)).name<<endl<<"NO."<<(pstud[i]).num<<endl;
for(j=0;j<3;j++)
cout<<"score "<<j+1<<':'<<(pstud[i]).score[j]<<endl;
cout<<endl<<endl;
}
}
哪位高手能帮忙告诉我怎么使用“引用”解决这个问题吗?当然用指针也可以解决这个问题,但我想知道“引用”怎么解决这个问题 展开
using namespace std;
struct student
{
char name[10];
int num;
int score[3];
};
int main()
{
void print(student &pstud[]);
student stu[5];
int i,j;
cout<<"input the students' information :\n";
cout<<"name num score"<<endl;
for(i=0;i<5;i++)
{
cin>>stu[i].name>>stu[i].num;
for(j=0;j<3;j++)
cin>>stu[i].score[j];
}
print(stu);
return 0;
}
void print(student &pstud[])///////////////结构体"引用"作为函数形参
{
int i,j;
for(i=0;i<5;i++)
{
cout<<"name :"<<(*(pstud+i)).name<<endl<<"NO."<<(pstud[i]).num<<endl;
for(j=0;j<3;j++)
cout<<"score "<<j+1<<':'<<(pstud[i]).score[j]<<endl;
cout<<endl<<endl;
}
}
哪位高手能帮忙告诉我怎么使用“引用”解决这个问题吗?当然用指针也可以解决这个问题,但我想知道“引用”怎么解决这个问题 展开
2个回答
2012-05-08
展开全部
把程序中的所有的:
void print(student &pstud[])
都改为:
void print(student (&pstud)[])
即可。
(共修改两处, 一处main()函数中的声明,另一处就是后面的定义)
void print(student &pstud[])
都改为:
void print(student (&pstud)[])
即可。
(共修改两处, 一处main()函数中的声明,另一处就是后面的定义)
更多追问追答
追问
我的环境是VC6.0,按照你说的这种方式还是编译不能通过!
追答
程序修改如下 :
#include
using namespace std;
struct student
{
char name[10];
int num;
int score[3];
};
int main()
{
void print(student (&pstud)[5]); ///////注意这里
student stu[5];
int i,j;
cout>stu[i].name>>stu[i].num;
for(j=0;j>stu[i].score[j];
}
print(stu);
return 0;
}
void print(student (&pstud)[5])//////注意这里
{
int i,j;
for(i=0;i<5;i++)
{
cout<<"name :"<<(*(pstud+i)).name<<endl<<"NO."<<(pstud[i]).num<<endl;
for(j=0;j<3;j++)
cout<<"score "<<j+1<<':'<<(pstud[i]).score[j]<<endl;
cout<<endl<<endl;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询