1 / 1 / 2
Регистрация: 03.12.2014
Сообщений: 61
1

Сделать так, чтобы функция возвращала как целые, так и дробные значения

30.04.2015, 23:10. Показов 4383. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача: нужно найти среднее арифметическое чисел в одномерном массиве разных типов.

В main() у пользователя спрашивается размер массива и тип (int, float и double).

Есть такой шаблон:
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename T>
T average(const T * arr, int count)
{
    int sum = 0.;
    int average = 0.;
    for (int i = 0; i < count; i++)
    {
        sum += *(arr + i);
    }
    average = sum / count;
    return average;
}
Как сделать так, чтобы функция возвращала как целые так и дробные значения?
Например, 5/3 чтобы вернула 1.6666, 5/2 = 2.5 или 10/5 = 2.
Миниатюры
Сделать так, чтобы функция возвращала как целые, так и дробные значения   Сделать так, чтобы функция возвращала как целые, так и дробные значения  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2015, 23:10
Ответы с готовыми решениями:

Как сделать так, чтобы функция rand() возвращала разные значения
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения...

Сделать так, чтобы функция возвращала параметр
В общем, есть 3 матрицы, выведение их на экран и перемножение, сделанное через класс. Функции mult1...

Как в VBA сделать так, чтобы функция возвращала массив?
Задача: пусть есть числа a, b. Причем a &lt; b. Создать массив, включающий числа из диапазона .

Как сделать так чтобы функция каждый раз возвращала новое значение
Дана вот такая функция и она возвращает случайное число(Она работает) function montekarlo(diap1:...

3
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
30.04.2015, 23:13 2
Лучший ответ Сообщение было отмечено Jagailo как решение

Решение

Внутренние переменные и возвращаемое значение сделай double.
1
1 / 1 / 2
Регистрация: 03.12.2014
Сообщений: 61
30.04.2015, 23:20  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Внутренние переменные и возвращаемое значение сделай double.
C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
T average(const T * arr, int count)
{
    T sum = 0.;
    T average = 0.;
    for (int i = 0; i < count; i++)
    {
        sum += *(arr + i);
    }
    return sum / count;
}
Для float это работает, но что делать если делить int 5 на int 4? В данном случае 5/4 это 1, а не 1.25.
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
30.04.2015, 23:24 4
Лучший ответ Сообщение было отмечено Jagailo как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
double average(const T * arr, int count)
{
    double sum = 0.;
    double average = 0.;
    for (int i = 0; i < count; i++)
    {
        sum += *(arr + i);
    }
    return sum / count;
}
1
30.04.2015, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2015, 23:24
Помогаю со студенческими работами здесь

Подобрать значения массива так, чтобы функция equal(pbegin(), pend(), qbegin(), super) возвращала истину
2. Дан отрывок кода. bool super(int a, int b) { return a + b == 0; } vector&lt;int&gt; p =...

Как сделать так что бы функция возвращала строку
Как сделать так что бы функция возвращала строку

Как сделать так, чтобы процедура типа void возвращала значение?
Доброго времени суток! Ребят, помогите поправить процедуру. Она должна быть типа void, но при этом...

Как сделать, чтобы определенная переменная возвращала как и цифры, так и слова
То есть мне нужно, чтобы переменная принимала значения NaN, бесконечность, и иногда простой...

Есть готовый код, как сделать так, чтобы мог выводить дробные цифры. Например: 0.15, 0.018 и тд
Program massive2 ; uses crt; var a:array of integer; i,j,num:integer; max,sum: integer; begin...

Дописать программу так, чтобы в массив вводились как целые числа так и вещественные
помогите дописать программу так чтобы в массив вводились как целые числа так и вещественные ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru