Я должен написать программу, в которой я ставлю два числа, и программа вычисляет среднее значение.Я хочу написать свою программу так, чтобы, если я введу два десятичных числа, программа вызовет функцию с плавающей запятой, а если я введу два целых числа, она вызовет целочисленную функцию, введет два длинных числа, вызовет длинную функцию.
Основная проблема, с которой я столкнулся, - это выбор типа переменной.Потому что, если я использую тип long для своей переменной, но два числа, введенные пользователем, являются десятичными, то программа вызывает функцию long, а среднее значение получается как длинная переменная.
Вот что ямы дошли до этого:
#include <iostream>
int average(int, int);
long average(long, long);
float average(float, float);
int main()
{
//The variables
// The problem with them is that if I use
// a type, let's say int, but the input
// is a float, then it won't work
x;
y;
averag;
std::cout << "Here is a number: ";
std::cin >> x;
std::cout << "\nHere is another one: ";
std::cin >> y;
//The function in call
averag = average(x, y);
std::cout << "\n\nHere is the average: ";
std::cout << averag;
return 0;
}
//The definition of the int function
int average(int x, int y)
{
int x;
int y;
int average;
average = (x + y) / 2;
return average;
}
// The definition of the short function
short average(short x, short y)
{
short x;
short y;
short average;
average = (x + y) / 2;
return average;
}
// The definition of the float function
float average(float x, float y)
{
float x;
float y;
float average;
average = (x + y) / 2;
return average;
}
//I think i'm not grasping the scopes in which I can define a variable
//and where I must define the parameters within the functions
Я думаю, что определение переменных типа в каждой области действия функции является неправильным, но как еще я должен определять переменные!
Как это сделать?