求解一道C++的编程题目!关于指针访问动态内存的

修改、补充下列程序,并完成打印n个学生的成绩单及总分。
#include <iostream>
using namespace std;
void main()
{long top_id=0; // top_id用于存放学生的学号
int I,top_sum=0,n; // top_sum用于存放学生的总分;n为学生人数
cin>>n;
long *id=new long[n]; //存放学号
int *chi=new int[n]; //存放语文成绩
int *eng=new int[n]; //存放英语成绩
int *pro=new int[n]; //存放程序语言成绩
…………..
}

哪位高手帮我补充一下吧 谢谢谢谢~~~~~~

C++要习惯设计类哥们:
看着
#include<iostream>
#include<iomanip>
using namespace std;
class student
{private:
int id;
int eng;
int chi;
int pro;
int math;
long sum;
long sums(){
sum=eng+chi+pro+math;
return sum;
}
public:
void set(){
cout<<"请依次输入学号、英语成绩、语文成绩、程序成绩、数学成绩"<<endl;
cin>>id>>eng>>chi>>pro>>math;
}
void show(){
cout<<setw(8)<<id<<setw(6)<<eng<<setw(6)<<chi<<setw(6)<<pro<<setw(6)<<math<<setw(6)<<sums()<<endl;}
};
void main()
{student *p;
p=new student;
p->set();
cout<<setw(8)<<"学号"<<setw(6)<<"英语"<<setw(6)<<"语文"<<setw(6)<<"程序"<<setw(6)<<"数学"<<setw

(6)<<"总分"<<endl;
p->show();
delete p;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-16
for(size_t i=0; i!=n; ++i)
{
sum=*chi+*eng+*pro;
cout<<*id<<" "<<*chi<<" "<<*eng<<" "<<*pro<<" "<<sum<<"\n"<<endl;
++id;
++chi;
++eng;
++pro;
}
第2个回答  2011-05-19
关键在于GetMemory(char *p)使用指针参数p传递地址,而不是char *&,所以按照参数传递的“by value”语义,GetMemory内部使用的p和调用时传入的参数str不是一个对象,两者的关系仅仅在于“p和str的内容相同”(这里,就是两者指向的地址相同)。
但是GetMemory只是改变了p的内容,与str不相干!
第3个回答  2011-05-16
zk 信通院的学生要靠自己啊!!追问

你妹的别随便掀我老底成么?!……我已经写完了 只想问个更好的答案好伐?= =

C++指针题目
c 是一个 char 型的指针变量,即 c 指向一个内存地址,且目标长度为 sizeof(char) = 1 个字节。c 表示取出 c 所指的内存区的内容,对其进行加减操作即为对那个内存区域的数值进行加减操作;而对 c 进行加减,则表示将这个指针变量的值进行加减操作,即将指针向前(减法)或向后(加法)移动,那么...

C++的指针
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si zeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。 指针所指向的内存区和指针所指...

关于C++指针方面的问题,请教一下大家
struct tm *tblock; 定义指针变量,分配内存。tblock = localtime(&timer); 指针指向函数返回的内存区域。野指针是只会在动态分配内存时产生,即用户自己动态使用分配的内存,即使用 malloc()\\calloc()函数,和 new操作符分配的内存忘记释放时。前者用用free()释放,后者用delete释放。忘记释放会产...

带你一起看看:双重指针在C\/C++中的全景解析:内存管理与数据结构的桥梁...
综上所述,双重指针技术在C\/C++编程中扮演着关键角色。无论是动态内存管理、数据结构操作还是高级函数参数传递,理解并灵活运用双重指针能够有效提升程序的灵活性和性能。掌握这一概念,将使您在处理复杂内存管理和数据结构问题时游刃有余。

C++经典面试问题
如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针, 判断指针是否为NULL,如果是则马上用return语句终止本函数, 或者马上用exit(1)终止整个程序的运行,为new和malloc设置异常处理函数。 2,C++指针攻破 答案:指针是一个变量,专门存放内存地址,特点是能访问所指向的内存 指针本身占据了4个字节的长度...

C++ & QT ---05(内存、指针、引用、函数高级)
栈区由编译器自动分配和释放,用于存储函数参数值、局部变量等,确保这些数据在函数结束时自动释放。堆区则是由程序员手动分配和释放的空间,用于动态内存管理,主要通过new和delete操作符使用。新操作符(new)用于在堆区开辟数据,所创建的数据会返回指向该数据的指针。引用是C++中提供的一种便捷的方式来...

求一个C++程序题目!!
1。艺人生成:选择类别,输入名字 (生成的艺人个数上限,你可以编程的时候设定,或者程序运行时让程序的使用者自己输入,让程序的使用者自己输入编程更难一些,如果选择让程序的使用者输入,那么在程序运行时首先就要打出如:“请输入最多可以生成多少艺人?”,好像这个叫动态内存吧?)程序使用者,自己...

动态分配内存动态分配内存的方法(C\/C++)
动态分配内存是程序设计中的一种重要技术,它允许程序在运行时根据实际需求动态地分配和释放内存空间。在C\/C++语言中,动态分配内存通常使用关键字new和delete来完成。新关键字new可以用于生成动态无名变量,例如`int *p=new int;`表示动态分配一个整型内存空间,并将首地址返回给指针p。同样,`int *p=...

C++题目求助,多选题,关于对象指针?
选项A与B是正确的。根据题意,指针p是指向LEI类的指针,对p进行析取操作,即*p的数据类型则是LEI类,这样*p.x就可以合规地访问类成员x,包括对其赋值。另外,对指针p用箭头操作符访问数据结构内的成员,是C语言的传统用法,c++也继承了这一用法。

关于c++的shared_ptr?
在C++编程中,共享智能指针shared_ptr是一种用于管理动态分配的内存资源的工具。它能够追踪对象的生命周期,确保当对象不再被需要时,内存能被正确释放,避免内存泄漏问题。其中,shared_ptr的核心功能在于共享被管理对象的所有权。当创建一个shared_ptr实例时,它会自动管理所指向的对象的生命周期。这意味着...

相似回答