|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<iostream>
#include<iostream>
using namespace std;
struct student
{
string sname;
int score;
};
struct teacher
{
string tname;
struct student sarray[5];
};
void allocatespace(struct teacher tarray[],int len)
{
string nameseed="ABCDE";
for(int i=0;i<len;i++)
{
tarray[i].tname="Teacher_";
tarray[i].tname+=nameseed[i];
for(int j=0;j<5;j++)
{
tarray[i].sarray[j].sname="Student_";
tarray[i].sarray[j].sname+=nameseed[j];
tarray[i].sarray[j].score=60;
}
}
}
void print(struct teacher tarray[],int len)
{
for(int i=0;i<len;i++)
{
cout<<"老师姓名:"<<tarray[i].tname<<endl;
for(int j=0;j<5;j++)
{
cout<<"学生姓名:"<<tarray[i].sarray[j].sname
<<"考试分数:"<<tarray[i].sarray[j].score<<endl;
}
}
}
int main()//创建三名老师的数组
{
struct teacher tarray[3];
int len=sizeof(tarray)/sizeof(tarray[0]);
allocatespace(tarray,3);
return 0;
}
问题分析:
这段代码中存在一些语法错误和逻辑错误。首先,头文件iostream被包含了两次,应该只包含一次。其次,函数print()被定义了但没有被调用,所以不会有任何输出结果。
解决方案:
1. 删除第二次包含的头文件<iostream>。
2. 在main()函数中调用print()函数,以输出结果。
修改后的代码如下所示:
#include<iostream>
using namespace std;
struct student
{
string sname;
int score;
};
struct teacher
{
string tname;
struct student sarray[5];
};
void allocatespace(struct teacher tarray[], int len)
{
string nameseed = "ABCDE";
for (int i = 0; i < len; i++)
{
tarray[ i].tname = "Teacher_";
tarray[ i].tname += nameseed[ i];
for (int j = 0; j < 5; j++)
{
tarray[ i].sarray[j].sname = "Student_";
tarray[ i].sarray[j].sname += nameseed[j];
tarray[ i].sarray[j].score = 60;
}
}
}
void print(struct teacher tarray[], int len)
{
for (int i = 0; i < len; i++)
{
cout << "老师姓名:" << tarray[ i].tname << endl;
for (int j = 0; j < 5; j++)
{
cout << "学生姓名:" << tarray[ i].sarray[j].sname
<< " 考试分数:" << tarray[ i].sarray[j].score << endl;
}
}
}
int main()
{
struct teacher tarray[3];
int len = sizeof(tarray) / sizeof(tarray[0]);
allocatespace(tarray, 3);
print(tarray, 3);
return 0;
}
|
|