plapapyjh 2022-03-27 15:06 采纳率: 43.5%
浏览 41
已结题

C++初学者,关于动态内存分配的问题

img

img


我是刚接触C++,碰到动态内存分配的一个题,第一个是要求,第二个是我自己写了一半写不下去的,麻烦看一下,能给个完整代码,要是能有详细一点的注释就太感谢了

  • 写回答

1条回答 默认 最新

  • 关注

    需要二维动态数组解决,用户交互自己做吧。

    #include <iostream>
    
    int main()
    {
        int cntClass = 0; //班级数量
    
        std::cin >> cntClass;
    
        if (cntClass <= 0) //班级数量小于零,退出
        {
            return 0;
        }
    
        int **scoresPtr = new int *[cntClass](); //建立二维数组用于存放成绩
        int *peopleCnt = new int[cntClass]();    //建立数组,存放每个班级人数
    
        for (int cnt = 0; cnt != cntClass; ++cnt)
        {
            int peopleNum = 0; //初始化班级人数
            std::cin >> peopleNum;
            if (peopleNum <= 0) //人数少于0,清理内存,退出
            {
                for (int cnt = 0; cnt != cntClass; ++cnt)
                {
                    delete[] scoresPtr[cnt];
                }
                delete[] scoresPtr;
                delete[] peopleCnt;
                return 0;
            }
            peopleCnt[cnt] = peopleNum;          //设定某班的人数
            scoresPtr[cnt] = new int[peopleNum]; //初始化某班的成绩数组
            for (int i = 0; i != peopleNum; ++i)
            {
                std::cin >> scoresPtr[cnt][i];
            }
        }
    
        int x = 0;
        int y = 0;
        std::cin >> x >> y;
        //若输入的x,y不在合理区间,退出
        if ((x >= 0 && x < cntClass) && (y >= 0 && y < peopleCnt[x]))
        {
            std::cout << scoresPtr[x][y] << std::endl;
        }
    
        //清理内存
        for (int cnt = 0; cnt != cntClass; ++cnt)
        {
            delete[] scoresPtr[cnt];
        }
        delete[] scoresPtr;
        delete[] peopleCnt;
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line