最小值和最大值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;
}
答
std::max_element
和std::min_element
你想象不工作。他们实际上将迭代器用于序列和比较器,而不仅仅是数字。它们也会返回迭代器,而不是值,因此在尝试随机调用函数之前阅读文档并理解如何使用它们。我链接的页面上有一些例子可以帮助你。
你需要使用'std :: min'和'std :: max' – simpel01