2017-02-18 31 views
-4

私は割り当てのために書いているコードをいくつか持っており、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_elementstd::min_elementあなたが思うように動作しません。実際にはイテレータをシーケンスに、コンパレータは数値だけでなく、また、値ではなくイテレータを返すので、関数をランダムに呼び出そうとする前に、ドキュメントを読んで使い方を理解してください。私がリンクしているページには、あなたに役立つ例があります。

関連する問題