c++结构指针

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:13:38
有一个例子
struct student
{
int idNum;
char name[15];
int age;
}

请问怎样利用该结构实现任意人的信息的存储?
请问怎么定义一个指针,使他能类似于 iprt【i】这样的调用?
我写好的代码如下:
#include "iostream.h"
struct student
{
int idNum;
char name[15];
int zkcj;
};
void print(int size,student *iprt);
void input(int size,student *iprt);
int main()
{
int size;
cout<<"需要录入几名同学的成绩?";
cin>>size;
student *iprt;
iprt=new student;
for (int i=0;i<size;i++)
{
cout<<"依次输入该同学的学号、姓名、中考成绩:\n";
input(size,iprt);
print(size,iprt);
}
delete iprt;
return 0;
}
void input(int size,student *iprt)
{
cin>>iprt->idNum>>iprt->name>>iprt->zkcj;
}

void print(int size,student *iprt)
{
cout<<"学号:"<<iprt->idNum<<endl<<"姓名:&

明显不行,你总共就一个节点,每次都往这个节点写数据,后来的数据就覆盖了以前的数据。

做一个结构数组吧,

#include "iostream.h"
struct student
{
int idNum;
char name[15];
int zkcj;
};
void print(int size,student *iprt);
void input(int size,student *iprt);
int main()
{
int size;
cout<<"需要录入几名同学的成绩?";
cin>>size;
student *iprt = new student[size];//申明结构数组并分配内存
for (int i=0;i<size;i++)
{
cout<<"依次输入该同学的学号、姓名、中考成绩:\n";
input(size,&iprt[i]);
print(size,&iprt[i]);
}
delete []iprt; //删除数组
return 0;
}
void input(int size,student *iprt)
{
cin>>iprt->idNum>>iprt->name>>iprt->zkcj;
}

void print(int size,student *iprt)
{
cout<<"学号:"<<iprt->idNum<<endl<<"姓名:"<< iprt->name<<endl<<"中考成绩:"<<iprt->zkcj<< en