莫莫事 2021-11-03 18: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条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月3日

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行