2017-02-18 19 views
-4

Итак, у меня есть код, который я пишу для задания, и я застрял в поиске значений min и max из 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

ответ

0

std::max_element и std::min_element не работают, как вы думаете. Они фактически принимают итераторы в последовательность и компаратор, а не только цифры. Они также возвращают итераторы, а не значения, поэтому читайте документы и понимайте, как их использовать, прежде чем пытаться случайно вызвать функции. На страницах, которые я связал, есть примеры, которые должны вам помочь.

Смежные вопросы