遥感院04上机

一、问题

1. 现有一数组,其元素值见文件test.txt,要求通过编程的方法求出这组数中值最大的元素、值最小的元素和中值元素。结果通过编程的方法写入文本文件中输出。

数据源文件的结构说明如下:

a)      文件中的第一行为数组中元素总数(不包括自身所在行),第一行不参与运算。

b)     从第二行起为数组中的元素取值。

c)      中值,即数组中元素按照一定顺序排序后,位于中间的数即为该数组的中值。如,数组{13,5,8,14,22,37,26,19,11}的中值为14。

二、要求

1.    程序可以采用自己熟悉的语言(VC、VB或TC)编写。

2.    用180分钟的时间独立完成任务。

3.    考试结束需要提交以下材料

①    提交全部源码及相关文件(要求源码可以运行)

②    算法实现的核心代码及结果以独立文件(文本文件)上交。

③    提交使用说明文档一份(要求在该说明的指导下可以得出对应的结果)。

 

 

说明:类同代码,每人各从其总得分钟扣除20分。

#include <iostream>

  1. #include <fstream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iterator>


using namespace std;


int main(int argc, char* *argv)
{
//ifstream infile(argv[1]);
//ofstream outfile(argv[2]);


ifstream infile("E://test.txt");
ofstream outfile("E://result.txt");


if (!infile)
{
cout << "test.txt open failed: " << endl;
return 1;
}
if (!outfile)
{
cout << "result.txt open failed: " << endl;
return 1;
}


vector<int> vec;//int 型vector
int number = 0;
while (!infile.eof())//判断流中保存的是不是终结符
{
infile >> number;//
if (infile.fail()) {
break;
}
else
vec.push_back(number);//在vector的末尾插入一个元素
}


sort(vec.begin(), vec.end());     //sort the vec ,vec.begin()为起始,vec.end()为结束
for(int i=0;i<=7;i++)
cout << vec[i] << endl;
outfile << "the min number is:" << vec[1] << endl;
outfile << "the max number is:" << vec[vec[0]] << endl;
outfile << "the middle number is:" << vec[(vec[0] + 1) / 2] << endl;


outfile.close();
infile.close();
return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值