求出极大、极小值解决方法
求出极大、极小值
在处理一组数据时,想要编个程序段同时求出极大值和极小值,但是只能求出极大,
int a,b,temp;
if(recievedata-temp > 0 || temp-recievedata <0)
b = temp;
else
a = temp;
这段代码肯定有问题,但是如果同时求该怎样写呢?
------解决方案--------------------
int min = 0;
int max = 0;
if(recievedata > max ) max = recievedata;
if(recievedata < min ) min = recievedata;
------解决方案--------------------
你用STL里面的VECTOR直接就可以了。
------解决方案--------------------
如果数据是存在txt里,以空格、TAB和回车做间隔的话。
在处理一组数据时,想要编个程序段同时求出极大值和极小值,但是只能求出极大,
int a,b,temp;
if(recievedata-temp > 0 || temp-recievedata <0)
b = temp;
else
a = temp;
这段代码肯定有问题,但是如果同时求该怎样写呢?
------解决方案--------------------
int min = 0;
int max = 0;
if(recievedata > max ) max = recievedata;
if(recievedata < min ) min = recievedata;
------解决方案--------------------
你用STL里面的VECTOR直接就可以了。
------解决方案--------------------
如果数据是存在txt里,以空格、TAB和回车做间隔的话。
- C/C++ code
#include <iostream> #include <vector> #include <fstream> #include <iterator> #include <algorithm> using namespace std; int main() { ifstream infile( "xx.txt"); if( infile.fail() ) { return 0; } istream_iterator<int> bg( infile ); istream_iterator<int> ed; vector<int> numLst; copy( bg,ed, back_inserter<vector<int> >(numLst) ); cout<<*max_element(numLst.begin(),numLst.end())<<endl <<*min_element(numLst.begin(),numLst.end())<<endl; return 0; }