最小值和最大值C++

问题描述:

所以我有一些代码,我正在为一项任务编写代码,而且我一直在寻找来自3个浮点数的最小值和最大值。我目前得到的错误最小值和最大值C++

/usr/include/c++/4.9/bits/predefined_ops.h:121:39:错误:一元的“”无效的类型参数(有“浮”){ 返回布尔( _M_comp( __it1,* __ it2)); }

这是我当前的代码:

#include <iostream> 
#include <string> 
#include <algorithm> 

using namespace std; 

//Name: Tanner Langan 
//Student Number: 300224340 
//Date: 2//16/2017 
//Assignment 3 


int main() 
{ 
char c1; 
float x1,x2,x3; 

cout << "Please Enter 1 character and 3 float numbers. One at a time" << endl; 
cout << "You must choose either X, N, V, or S for the character." << endl; 
cout << "If you choose X the result displayed will be the the maximum of x1, x2, and x3" << endl; 
cout << "If you choose N the result displayed will be the the minimum of x1, x2, and x3" << endl; 
cout << "If you choose V the result displayed will be the the average of x1, x2, and x3" << endl; 
cout << "If you choose S the program will terminate."; 
cin >> c1; 
cin >> x1; 
cin >> x2; 
cin >> x3; 

while (c1 != 'S') 
{ 
if(c1 == 'X' || c1 == 'x') 
{ 
cout << "The max is" << std::max_element(x1,x2,x3) << endl; 
main(); 
} 
if(c1 == 'N' || c1 == 'n') 
{ 

cout << "The min is" << std::min_element(x1,x2,x3) << endl; 
main(); 
} 
if(c1 == 'V' || c1 == 'v') 
{ 
cout << "The average is" << (x1+x2+x3)/3 << endl; 
main(); 
} 

} 
return 0; 

} 
+0

你需要使用'std :: min'和'std :: max' – simpel01

std::max_elementstd::min_element你想象不工作。他们实际上将迭代器用于序列和比较器,而不仅仅是数字。它们也会返回迭代器,而不是值,因此在尝试随机调用函数之前阅读文档并理解如何使用它们。我链接的页面上有一些例子可以帮助你。