莫莫事 2021-11-03 10:03 采纳率: 100%
浏览 25
已结题

代码报错,初学者不知道怎么办,请讲解啊!!



```c++
#include <iostream>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
//学生数组
struct Students
{
    //姓名
    string sName;
    //分数 
    int score;
};
//老师数组
struct Teacher
{
    //姓名
    string tName;
    //学生数组
    struct Students sArray[5];
};
//创建一个给老师和学生赋值的函数
void allocateSpace(struct Teacher tArray[3], 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[i].sName = "Students_";
            tArray[i].sArray[i].sName += nameseed[i];
            tArray[i].sArray[i].score = 60;
        }
    }

}
//打印所有信息
void printinfo(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(void)
{
    //创建三名老师的数组
    struct Teacher tArray[3];
    //通过函数给三名老师赋值,并且给三名老师所带的五名学生的信息赋值 
    int len = sizeof(tArray) / sizeof(tArray[0]);
    allocateSpace(tArray, len);
    //打印
    printinfo(tArray, len);
    system("pause");
}

```

展开全部

  • 写回答

2条回答 默认 最新

  • 关注

    你代码中的所有 i <= len 都改成 i <len
    所有的 j<=5都改成 j< 5
    代码修改如下:

    
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstdlib>
    #include <cmath>
    #include <ctime>
    using namespace std;
    //学生数组
    struct Students
    {
        //姓名
        string sName;
        //分数 
        int score;
    };
    //老师数组
    struct Teacher
    {
        //姓名
        string tName;
        //学生数组
        struct Students sArray[5];
    };
    //创建一个给老师和学生赋值的函数
    void allocateSpace(struct Teacher tArray[3], 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 = "Students_";
                tArray[i].sArray[j].sName += nameseed[i];
                tArray[i].sArray[j].score = 60;
            }
        }
    }
    //打印所有信息
    void printinfo(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(void)
    {
        //创建三名老师的数组
        struct Teacher tArray[3];
        //通过函数给三名老师赋值,并且给三名老师所带的五名学生的信息赋值 
        int len = sizeof(tArray) / sizeof(tArray[0]);
        allocateSpace(tArray, len);
        //打印
        printinfo(tArray, len);
        system("pause");
    }
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    如有帮助,请点击我的回答下方的采纳该答案按钮,帮忙支持一下,谢谢。

    1
    回复
    莫莫事 2021-11-04 03:57

    谢谢大神指导

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月4日
  • 创建了问题 11月3日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部