需要二维动态数组解决,用户交互自己做吧。
#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;
}