#include<iostream>
using namespace std;
bool is_different(int x, int y, int z);
int max_of_three(int x, int y, int z);
int greater_of_two(int x, int y);
int min_of_three(int x, int y, int z);
int smaller_of_two(int x, int y);
void print_result(int min_of_three, int max_of_three);
int main ()
{
int x, y, z;
while(1==1)
{
cout << "Please input 3 different integers." << endl;
cin >> x >> y >> z;
if (is_different (x, y, z))
{break;}
}
print_result(min_of_three, max_of_three);//error here
}
bool is_different (int x, int y, int z)
{
if (x!=y && x!=z && y!=z)
{
return true;
}
else
{return false;}
}
int greater_of_two (int x, int y)
{
if (x > y)
return x;
if (y > x)
return y;
return 0;
}int max_of_three (int x, int y, int z)
{
return greater_of_two(greater_of_two(x, y) , z);
}
int smaller_of_two (int x, int y)
{
if (x < y)
return x;
if (y < x)
return y;
return 0;
}
int min_of_three (int x, int y, int z)
{
return smaller_of_two(smaller_of_two(x, y) , z);
}
void print_result (int min_of_three, int max_of_three)
{
cout << "The minimum value of the three is " << min_of_three << endl;
cout << "The maximum value of the three is " << max_of_three << endl;
}
Я пытаюсь написать программу, которая находит максимум и минимум трех различных введенных целых чисел для назначения, я впервые имею дело с функциями, и я не понимаю, что означает ошибка.
Вы пытаетесь пройти min_of_three
а также max_of_three
которые являются функциональными указателями подписи:
int (*) (int, int, int)
в print_result
что ожидает int
аргументы.
Вы хотите это:
print_result(min_of_three(x,y,z), max_of_three(x,y,z));
Функции min_of_three(x,y,z)
а также max_of_three(x,y,z)
вернуть int
который затем используется в качестве параметров для print_result
функция.
Других решений пока нет …