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

Шаблоны функций обработки одномерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Калькулятор строковый с защитой от дурака http://www.cyberforum.ru/cpp-beginners/thread1163292.html
Делаю курсовую - нужно сделать строковый калькулятор с защитой от дурака. Код не мой, я добавил только то, что теперь выдает ошибку при вводе буквы. Теперь надо сделать предупредение о том что есть только закрытая, но нет открытой скобки, а также, если 2 знака подряд введенно, например ++ , то тоже ошибка. Заранее благодарю за помощь #include "stdafx.h" #include <iostream> #include <stack>...
C++ Длинная арифметика, деление чисел http://www.cyberforum.ru/attachment.php?attachmentid=393890&stc=1&d=1398936287 Помоги с решием , желательно код.Заранее спасибО! http://www.cyberforum.ru/cpp-beginners/thread1163286.html
Найти время прилета по времени города прибытия C++
Формат входных данных В первой строке входных данных для программы задано число n < 10000 – количество городов, между которыми осуществляются авиарейсы. Затем в n строках идет описание городов в следующем формате – сначала название города (не содержит пробелов), а затем через пробел – часовой пояс в формате (GMT+<разница во времени> или GMT-<разница во времени>) Затем на вход подается число...
C++ Чтение файла, лишняя итерация
Вопрос по функции feof(). Я так понимаю она должна сигнализировать о конце файл, если был прочитан последний байт файла. Но у меня в примере снизу это происходит только с одной лишней итерацией (когда последний байта файл считывается, цикл выполняется еще раз и только потом происходит выход из цикла). С чем это связано? void test2() { FILE *f; f =...
C++ Вычислить количество элементов списка, расположенных до заданного значения http://www.cyberforum.ru/cpp-beginners/thread1163232.html
Написать функцию, которая вычисляет количество элементов списка, расположенных в списке до заданного значения.
C++ Gets не коректно работает gets не коректно работает в следующем коде смысл программы в 2-ух 4 значных строках найти одинаковые символы стоящие в одинаковых порядковых местах #include<iostream> #include<cstdio> using namespace std; int main(void) подробнее

Показать сообщение отдельно
ZayacV
2 / 2 / 2
Регистрация: 27.10.2013
Сообщений: 72
01.05.2014, 13:48     Шаблоны функций обработки одномерного массива
всем привет! недавно начал изучать шаблоны функций. вот написал программу, посмотрите пожалуйста, правильно ли сделал?
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Задание:
// В одномерном массиве, состоящем из n вещественных элементов, вычислить:
// 1. сумму отрицательных элементов массива;
// 2. произведение элементов массива, расположенных между максимальным и минимальным элементами.
// 3. Упорядочить элементы массива по возрастанию.
 
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
 
template<typename T> T sum(T arr[], int n)//шаблон функции для нахождения суммы отр элементов
{
    T sum = 0;
 
    for(int i = 0; i < n; i++)
        if(arr[i] < 0)
            sum += arr[i];
 
    return sum;
}
 
template<typename T> T mult(int arr[], int n)
{
    T index_min = 0;
    T index_max = 0;
    T mult = 1;
 
    for(int i = 0; i < n; i++) {
        if(arr[i] < arr[index_min])
            index_min = i;
        if(arr[i] > arr[index_max])
            index_max = i;
    }
 
    if(index_min > index_max) {
        int temp_index = index_min;
        index_min = index_max;
        index_max = temp_index;
    }
 
    for(int i = index_min+1; i < index_max; i++)
        mult *= arr[i];
 
    return mult;
}
 
template<typename T> T sort(int arr[], int n)
{
    for(int i = 0; i < n-1; i++)
        for(int j = i+1; j < n; j++)
            if(arr[i] > arr[j]) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
 
    return;
}
 
int main()
{
    int arr[10];
 
    srand(time(0));
    for(int i = 0; i < 10; i++) {
        arr[i] = rand()%50 - 25;
        cout << setw(5) << arr[i];
    }
    cout << endl;
    cout << endl << "1) Suma otricatelnyh: " << sum<int>(arr, 10) << endl;
    cout << endl << "2) Proizvedenie mejdu min i max: " << mult<int>(arr, 10) << endl;
    cout << "  (Podschet nachinaetsya s 0)..." << endl;
    cout << endl;
    sort<void>(arr, 10);
 
    std::cout << "Otsortirovannyj massiv:" << endl;
    for(int i = 0; i < 10; i++)
        cout << setw(5) << arr[i];
    cout << endl;
    cin.get();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru