Форум программистов, компьютерный форум CyberForum.ru

Шаблон функции выдаёт не правильные значения - C++

Восстановить пароль Регистрация
 
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
28.03.2013, 23:18     Шаблон функции выдаёт не правильные значения #1
Суть: Одномерный массив получает левые значения, а функция Average считает среднее арефмитичиское.

Вопрос в следуешем: Функция возвращяет значение типа int да и только. Почему она не возвращяет float ?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
template <typename T>
 T  Average(T a[],  T size )
{T sum=0;
for(int i=0;i<10;i++)
{sum=sum+a[i];}
T Rez=sum/size;
return Rez;}
    
 
void main()
{setlocale (LC_ALL,"Russian");
srand(time(NULL));
const int size=10;
int array_1[size];
for (int i=0;i<10;i++)
{array_1[i]=rand()%10;
cout<<"Ячейка массива №"<<i<<", ёё значение = "<<array_1[i]<<"\n\n";}
 
cout<<"Среднее арефмитичиское массива равно : "<<Average (array_1,size)<<"\n";
 
system ("pause");}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 23:18     Шаблон функции выдаёт не правильные значения
Посмотрите здесь:

Шаблон функции C++
Шаблон функции для удвоения максимального значения из трех аргументов C++
C++ При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
шаблон функции. Задачей функции является округление вышеуказанного вещественного числа с заданной точностью C++
C++ XE3 выдаёт ошибки при попытке присвоения значения переменной string
C++ Шаблон функции для удвоения максимального значения
Вычислить значения функции F на интервале от начального значения до конечного значения C++
Шаблон функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
29.03.2013, 00:07     Шаблон функции выдаёт не правильные значения #2
Цитата Сообщение от Boderman Посмотреть сообщение
Почему она не возвращяет float ?
Потому что деление двух целых чисел в C++ всегда даёт целое.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <clocale>
 
using namespace std;
 
template <typename T>
float Average(T a[], int size)
{
    float sum = 0;
    for(int i = 0; i < size; i++)
    {
        sum += a[i];
    }
 
    return sum / size;
}
 
int main()
{
    setlocale (LC_ALL, "Russian");
    srand(time(NULL));
 
    const int size = 10;
    int array_1[size];
    for (int i = 0; i < size; i++)
    {
        array_1[i] = rand() % 10;
        cout << "Ячейка массива №" << i << ", ёё значение = " << array_1[i] << "\n\n";
    }
 
    cout << "Среднее арефмитичиское массива равно : " << Average (array_1, size) << "\n";
    system ("pause");
}
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
29.03.2013, 01:18  [ТС]     Шаблон функции выдаёт не правильные значения #3
А о спасибо учту !
Yandex
Объявления
29.03.2013, 01:18     Шаблон функции выдаёт не правильные значения
Ответ Создать тему
Опции темы

Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru