c++中怎么实现动态数组的数据采集和显示
c++中如何实现动态数组的数据采集和显示
我的意思是:由用户自行输入所需试验的数据行数、列数,然后由定义的函数实现对用户输入的新数据的采集,并显示,有什么好的方法吗?我是新手。
------解决方案--------------------
CArray
Vector
都可以做动态数组
或者自己建链表
------解决方案--------------------
stuarray这个是你的动态数组?没看到你给这个分配空间大小的
cout<<"请输入学生人数: "<<endl;
scanf("%d",&num1); //%d 读入十进制整数给student类中学生数目
cout<<"请输入科目数: "<<endl;
scanf("%d",&num2); //%d 读入十进制整数给student类中科目数目
stuarray = new CStudent[num1];
for (int i=0; i<num1; i++)
{
stuarray[i].pScore = new int[num2];
}
////////////////////////////
class CStudent{
...
int *pScore;//存放成绩,使用前申请空间 pScore = new int[num2];
...
};
------解决方案--------------------
退出前要delete
养成良好的编程习惯……
------解决方案--------------------
int nCount = 0;
struct CStudent{
char strName[20];
int *pScore;
int GetSum(){
if (!pScore)
{
return 0;
}
int sum = 0;
for (int i=0; i<nCount; i++)
{
sum+=pScore[i];
}
return sum;
}
};
int num1;
cout<<"请输入学生人数: "<<endl;
scanf("%d",&num1); //%d 读入十进制整数给student类中学生数目
cout<<"请输入科目数: "<<endl;
scanf("%d",&nCount); //%d 读入十进制整数给student类中科目数目
stuarray = new CStudent[num1];
for (int i=0; i<num1; i++)
{
stuarray[i].pScore = new int[nCount];
}
for (i=0; i<num1; i++)
{
cout<<"学生姓名:"<<endl;
scanf("%s", &(stuarray[i].strName));
for (int j=0; j<nCount; j++)
{
scanf("%d", &(stuarray[i].pScore[j]));
}
}
int sum= 0;
for (i=0; i<num1; i++)
{
sum=0;
cout<<stuarray[i].strName<<"\t"<<stuarray[i].GetSum()<<endl;
delete []stuarray[i].pScore;
}
delete stuarray;
我的意思是:由用户自行输入所需试验的数据行数、列数,然后由定义的函数实现对用户输入的新数据的采集,并显示,有什么好的方法吗?我是新手。
------解决方案--------------------
CArray
Vector
都可以做动态数组
或者自己建链表
------解决方案--------------------
stuarray这个是你的动态数组?没看到你给这个分配空间大小的
cout<<"请输入学生人数: "<<endl;
scanf("%d",&num1); //%d 读入十进制整数给student类中学生数目
cout<<"请输入科目数: "<<endl;
scanf("%d",&num2); //%d 读入十进制整数给student类中科目数目
stuarray = new CStudent[num1];
for (int i=0; i<num1; i++)
{
stuarray[i].pScore = new int[num2];
}
////////////////////////////
class CStudent{
...
int *pScore;//存放成绩,使用前申请空间 pScore = new int[num2];
...
};
------解决方案--------------------
退出前要delete
养成良好的编程习惯……
------解决方案--------------------
int nCount = 0;
struct CStudent{
char strName[20];
int *pScore;
int GetSum(){
if (!pScore)
{
return 0;
}
int sum = 0;
for (int i=0; i<nCount; i++)
{
sum+=pScore[i];
}
return sum;
}
};
int num1;
cout<<"请输入学生人数: "<<endl;
scanf("%d",&num1); //%d 读入十进制整数给student类中学生数目
cout<<"请输入科目数: "<<endl;
scanf("%d",&nCount); //%d 读入十进制整数给student类中科目数目
stuarray = new CStudent[num1];
for (int i=0; i<num1; i++)
{
stuarray[i].pScore = new int[nCount];
}
for (i=0; i<num1; i++)
{
cout<<"学生姓名:"<<endl;
scanf("%s", &(stuarray[i].strName));
for (int j=0; j<nCount; j++)
{
scanf("%d", &(stuarray[i].pScore[j]));
}
}
int sum= 0;
for (i=0; i<num1; i++)
{
sum=0;
cout<<stuarray[i].strName<<"\t"<<stuarray[i].GetSum()<<endl;
delete []stuarray[i].pScore;
}
delete stuarray;