Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
#1

Шаблон функции. Некорректная работа - C++

18.03.2013, 22:03. Просмотров 254. Ответов 4
Метки нет (Все метки)

Здравствуйте. Проблема такая: ниже приведенный код почему то некорректно отображает вызовы со всеми последующими массивами после 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
27
28
#include <iostream>
using namespace std;
template<class Val>
//////////////////////////////////////////
Val avg( Val* arr[], const int SIZE )
{
 for( int j = 0; j < SIZE; j++)
 {
  Val temp += arr[j];
 }
 temp /= SIZE;
 return temp;
}
//////////////////////////////////////////
int main( int argc, char* argv[] )
{
 const int SZ = 5;
 float arr1[SZ] = { 24.23, 12.7, 9.2, 7.9, 5.4 };
 float tv1 = avg( arr1, SZ );
 ///////////////////////////////////////////////////
 int arr2[SZ] = { 27, 15, 17, 88, 48 };
 int tv2 = avg( arr2, SZ );
 ///////////////////////////////////////////////////
 long arr3[SZ] = { 52, 64, 78, 92, 33 };
 long tv3 = avg( arr3, SZ );
 system("PAUSE");
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2013, 22:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шаблон функции. Некорректная работа (C++):

Некорректная работа функции pow - C++
Доброго времени суток. задали в универе написать прогу которая решала б кубическое уравнение.В расчетных формулах использовал функцию pow...

Некорректная работа функции fscanf - C++
Пишу прогу. Нужно считать из файла данные. Читаю при помощи fscanf. В итоге прога вроде работает, а вот в переменной куда считываю...

Некорректная работа повторно вызываемой функции - C++
wstring fdirection(void) { wcout &lt;&lt; L&quot;Введите путь к файлу, который хотите зашифровать (файл должен существовать): &quot; &lt;&lt; std::endl; ...

Некорректная работа цикла for. - C++
Ниже приведен код программы, вычисляющей по заданному n значение n!. Прошу объяснить, почему программа выдает отрицательные числа порядка...

Некорректная работа компилятора - C++
простая схема для метода пузырькового упорядочения /* * Проект 4-1. Метод пузырькового * упорядочения. */ #include...

Некорректная работа программы - C++
Добрый день! Я попытался решить задачу № 5 &quot;Статистика&quot; с сайта acmp.ру. Текст задачи: Вася не любит английский язык, но каждый...

4
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
18.03.2013, 22:04 #2
Цитата Сообщение от fuzzytoozy Посмотреть сообщение
C++
1
Val temp += arr[j];
Каждый раз создаете новую переменную?
0
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
18.03.2013, 22:13  [ТС] #3
ах да. Не исправленный код вставил. Вот так. Все равно не работает.
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
#include <iostream>
using namespace std;
template<class Val>
//////////////////////////////////////////
Val avg( Val* arr, const int SIZE )
{
 Val temp;
 
 for( int j = 0; j < SIZE; j++)
 {
  temp += arr[j];
 }
 temp /= SIZE;
 return temp;
}
//////////////////////////////////////////
int main( int argc, char* argv[] )
{
 const int SZ = 5;
 float arr1[SZ] = { 24.23, 12.7, 9.2, 7.9, 5.4 };
 int arr2[SZ] = { 27, 15, 17, 88, 48 };
 long arr3[SZ] = { 52, 64, 78, 92, 33 };
 cout << avg( arr1, SZ ) << endl;
 cout << avg ( arr2, SZ ) << endl;
 cout << avg ( arr3, SZ ) << endl;
 
 system("PAUSE");
 return 0;
}
Добавлено через 28 секунд
последние 2 вызова функция возвращает значения похожие на адрес памяти. При каждом запуске различные. Почему?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
18.03.2013, 22:18 #4
C++
1
Val temp=0;
Добавлено через 45 секунд
Переменная temp не инициализирована, так что складываете со случайным значением, которое было в памяти. Отсюда и разные результаты.
1
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
18.03.2013, 22:19  [ТС] #5
оох и правда. thank you very much =*
0
18.03.2013, 22:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 22:19
Привет! Вот еще темы с ответами:

Некорректная работа программы - C++
Помогите, пожалуйста, понять почему не работает программа. Ввод предложения работает, однако после нажатия клавиши Enter инвертированный...

Некорректная работа rand() - C++
В общем вот кусок кода и картинкой его реализация: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; ...

Некорректная работа _getch() - C++
При очень быстром нажатии двух клавиш подряд _getch() ловит два символа. И за-за этого программа работает нестабильно. Это фиксится?

Некорректная работа программы - C++
Суть программы в том, что есть записанные в файле слова с ответами (разделены &quot;\t\t&quot;). Программа считывает поочереди строки, разделяет ее...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru