建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。

2024-12-05 05:05:09
推荐回答(4个)
回答1:

#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.

回答2:

#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;}

已完善,可以实现,问题是你每次都是在同一处指针处创建,需要新建一个指针保存初始位置,然后需要移动指针,

回答3:

#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<int main()
{
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;
}
只是提供思路而已,不是直接回答本题。

回答4:

将p=new Student[];这一行代码更改为p=new Student[i];即可。