#include
using namespace std;
class Student
{
public:
Student(int n=0, float s=0): num(n), score(s){}
void input();
void display();
private:
int num;
float score;
};
void Student::input()
{
cin>>num>>score;
}
void Student::display()
{
cout< } int main() { Student stu[5], *p; int i; for (i=0; i<5; i++){ cout<<"Pleas enter No."<
stu[i].input(); } for (p=stu; p p->display(); cout< } system("pause"); return 0; } cout语句的一般格式为: cout<<表达式1<<表达式2<<……<<表达式n; 在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中, 直到输出缓冲区满或遇到cout语句中的endl(或'\n',ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。 一个cout语句可以分写成若干行。如: cout<<"This is a simple C++ program."< 可以写成 cout<<"This is " //注意行末尾无分号 <<"a C++ " <<"program." < 也可写成多个cout语句,即 cout<<"This is "; //语句末尾有分号 cout <<"a C++ "; cout <<"program."; cout< 以上3种情况的输出均为: This is a simple C++ program.扩展资料:
#include
using namespace std;
class Student{
public:void get_student();
void display();
private:int num;int score;
};
void Student::get_student(){
cin>>num>>score;
}
void Student::display()
{cout<<"num="<
int main(){int i;Student *p;p=new Student[];Student *t = p;
for(i=0;i<5;i++){
cout<<"请输入第"<get_student();
p++;
}cout<<"输出第1.3.5个学生的数据:\n";
p=t;
for(i=0;i<5;i=i+2)
{
p->display();
p++;
p++;
}delete p; delete t;return 0;}
已完善,可以实现,问题是你每次都是在同一处指针处创建,需要新建一个指针保存初始位置,然后需要移动指针,
#include
using namespace std;
class Student
{public:
Student(int a,float b)
{
num=a;
score=b;
}
void display();
private:
int num;
float score;
};
void Student::display()
{cout<
{
Student stud[5]={
Student(101,78.5),Student(102,85.5),Student(103,98.5),
Student(104,100.0),Student(105,95.5)};
Student *p=stud;
for(int i=0;i<5;i=i+2,p+=2)
p->display();
return 0;
}
只是提供思路而已,不是直接回答本题。
将p=new Student[];这一行代码更改为p=new Student[i];即可。