您的位置:首页 > 其它

第十三周项目六 体验文件操作(读入文件,求出考试最高成绩及取得者学号)

2014-11-24 12:13 211 查看
问题及代码:

#include <fstream>   //操作文件必写
#include<iostream>
#include<cstdlib>   //调用exit(1)需要包含cstdlib
using namespace std;
int main( )
{
    int a[10000],b[10000],c,max=-9999; //要求最大值,先默认max为一个很小的数;a[10000]存储读入的文件中的数值,b[10000]存储取得最大值的编号
    int m=0,n=0,i=0;
    //以输入的方式(ios::in)打开文件,注意english.dat必须在文件夹中存在
    ifstream infile("english.dat",ios::in);
    //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中
    while(infile>>c)  //当到达文件尾,则循环处理结束。类似cin>>c,只不过数据来源于打开的文件
    {
        a[m]=c;
        if(c>max)
            max=c; //在读入过程中,max将保存最大值
        m++;
    }
    while (n<=m)
    {
        if (a
==max)
        {
            b[i]=n;
            i++;
        }
        n++;
    }

    infile.close();    //读入完毕要关闭文件
    //下面对数据的操作和文件就没有关系了,本例输出求得的最大值
    cout<<"本次考试中最高分是:"<<max<<"。取得最高成绩的学生学号为(学号为1~10000):";
    for (int j=0; j<i; j++)
    {
        cout<<b[j]+1<<" ";
    }
    return 0;
}


english.dat截图:



运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐