请各位大佬看一看我的代码为什么错误呜
题目如下:
我的代码怎么也得不到正确的结果,我的代码在问题补充中!
输出结果如下~(结果中包括了调试内容)
下面是结果:
#include <fstream> #include <iostream> using namespace std; class Student{ public: int num; char name[12]; int grade; }; int main(){ int i,k=0,n; Student stud[10],stud1[10]; cin>>n;//输入学生数目 ofstream outf("DATA5614.DB",ios::binary); if(!outf){ cerr<<"open error!"<<endl; abort(); } for(i=0;i<n;i++){ //输入学生信息 cin>>stud[i].num>>stud[i].name>>stud[i].grade; //将学生信息写入文件 outf.write((char *)&stud[i],sizeof(stud[i])); } outf.close(); ifstream inf("DATA5614.DB",ios::binary); for(i=0;i<n;i++){ //对文件读出的指针进行定位 inf.seekg(i*sizeof(stud1[i]),ios::beg); //读出数据到stud1[]数组中 inf.read((char *)&stud1[1],sizeof(stud1[i])); } for(i=0;i<n;i++)//本循环用于调试结果 cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].grade<<endl; for(i=0;i<n;i++)//按照题目要求进行成绩比较 if(stud1[i].grade>stud1[k].grade) k=i; cout<<stud1[k].num<<" "<<stud1[k].name<<" "<<stud1[k].grade<<endl;//按题目要求进行输出 cout<<k<<endl;//调试成绩最高者的确定是否正确 inf.close(); return 0; }
复制粘贴代码请用《插入代码》,不然会改变你的代码格式,让人很难看懂
时间过了不知道我还能帮上忙吗
好的感谢!我再编辑一下题目!
小白刚注册博客不知道怎么使用,十分感谢指正!已经在补充问题中插入代码!请您看一下呜!
@一条C鱼: 我还没试过你这样的代码,但是做题的思路是有的,代码大部分能看懂。
就题目而言,假如当成绩最高者不止一位,你的程序只输出了一位
你这个做题网站是哪的呀,可以给我吗?
@Conan-jine: 但是我想知道的是,为什么我调试的结果中只有一个人的结果输出正常,同时还只输出正常了成绩最高者,而且为什么最终成绩最高者编号k的值是0而不是4呢
@Conan-jine: 点击这个网站的课后练习的noj就可以的啦noj.nwpu.edu.cn/
@Conan-jine: 不过程序最高者有几位这种情况确实没有考虑到!感谢~