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

Создать перегружаемые функции и шаблоны для типов int и double - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GDB 7.5 http://www.cyberforum.ru/cpp-beginners/thread691172.html
Помогите пожалуйста как установить GDB 7.5 к MinGW.MinGW установлен. http://ftp.gnu.org/gnu/gdb/ я скачал отсюда который 27 мб распокавал а что дальше?Можете расписать пошагова пожалуйста.
C++ Найти произведение всех элементов матрицы, расположенных под вспомогательной диагональю Найти произведение всех элементов матрицы, расположенных под вспомогательной диагональю, и умножить его на разницу максимального и минимального элемента главной диагонали.На С++ очень нужно. http://www.cyberforum.ru/cpp-beginners/thread691168.html
Рекурсия. Среднее значение в двумрном массиве C++
Доброе время суток. Помогите пожалуйста с задачей: Напишите рекурсивную функцию, которая находит среднее арифметическое наибольшего и наименьшего элемента главной диагонали матрицы А(5х5). Вот функция которая находит среднее арифметическое без рекурсии. float calc_y_(int a) { float y=0; int i, min, max; min=a; for(i=0; i<n; i++)
C++ Найти сумму элементов, расположенных в закрашенной части матрицы
Ребят помогите очень нужно пожалуйста !!! задачи по С++ 2 Дана действительная матрица порядка n. Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке.
C++ Получить новую матрицу, переставляя блоки в соответствии с рисунком http://www.cyberforum.ru/cpp-beginners/thread691154.html
Ребят помогите очень нужно пожалуйста !!! задачи по С++ 3 Дана действительная квадратная матрица порядка 2n. Получить новую, переставляя блоки размера n ґ n в соответствии с рисунком.
C++ Размещение реализаций методов класса Цитирую книгу: "Рекомендуется помещать объявление класса в файл с расширением .h, а реализацию его функций-членов - в файл с расширением .cpp." Пример из этой же книги: Файл Cat.h: #include <iostream> class Cat подробнее

Показать сообщение отдельно
Zambal
83 / 3 / 1
Регистрация: 14.11.2011
Сообщений: 68
09.11.2012, 20:07  [ТС]     Создать перегружаемые функции и шаблоны для типов int и double
помогите сделать второе задание, алгоритм нахождения суммы есть, не понимаю как исправить ошибки объявления функций и вызова их в главной функции. Запутался конкретно.

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
85
#include "stdafx.h"
#include <time.h>
 
#include <iostream>
using namespace std;
 
template <class S>
const S Max(S *a, size_t size)
{
    if (!size) return 0;
    
    S tmp = a[0];
    for (size_t i = 1; i < size; ++i)
    {
        if(abs(a[i]) > abs(tmp))
            tmp = a[i];
    }
    return tmp;
}
 
int *Sum(int *a, int first, int last);
double *Sum(double *a, double first, double last);
 
int main()
{
    const int n = 9;
    int A[n]; double B[n];
    srand((unsigned)time(NULL));
 
    for(int i = 0; i < n; i++)
    {
        A[i] = rand()%10;
        B[i] = (float)(rand()%99)/100 + rand()%10;
    }
    
    for(int a = 0; a < n; a++)
        cout << A[a] << " ";
    
    cout << '\n';
 
    for(int b = 0; b < n; b++)
        cout << B[b] << " ";
    
    cout << '\n';
 
    cout << "max in integer array = " << Max(A, sizeof(A)/sizeof(int)) << '\n';
    cout << "max in double array = " << Max(B, sizeof(B)/sizeof(double)) << '\n';
 
 
    cout << //не понимаю как записать результат
    cout << //не понимаю как записать результат
 
system("pause");
return 0;
}
 
int *Sum(int *a, int first, int last);
{
    for(int i = 0; i < n; i++)
        if(a[i]<0) {first=a[b]; break};
    
    for(int k = e; k >= 0; k--)
        if(a[k] < 0) {last = a[k]; break}
        
    int s = 0;
        for(int b = first + 1; b < last; b++)
            s+=a[b];
 
    return s;
}
 
double *Sum(double *a, double first, double last);
{
    for(int i = 0; i < n; i++)
        if(a[i]<0) {first=a[b]; break};
    
    for(int k = e; k >= 0; k--)
        if(a[k] < 0) {last = a[k]; break}
        
    double s = 0;
        for(int b = first + 1; b < last; b++)
            s+=a[b];
 
    return s;
}
Добавлено через 32 минуты
нашел несколько ошибок в предыдущем варианте, проблема вся та же, помогите
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
85
86
87
#include "stdafx.h"
#include <time.h>
 
#include <iostream>
using namespace std;
 
template <class S>
const S Max(S *a, size_t size)
{
    if (!size) return 0;
    
    S tmp = a[0];
    for (size_t i = 1; i < size; ++i)
    {
        if(abs(a[i]) > abs(tmp))
            tmp = a[i];
    }
    return tmp;
}
 
int Sum(int *a, int first, int last);
double Sum(double *a, double first, double last);
 
int main()
{
    const int n = 9; int first, last;
    int A[n]; double B[n];
    srand((unsigned)time(NULL));
 
    for(int i = 0; i < n; i++)
    {
        A[i] = rand()%10;
        B[i] = (float)(rand()%99)/100 + rand()%10;
    }
    
    for(int a = 0; a < n; a++)
        cout << A[a] << " ";
    
    cout << '\n';
 
    for(int b = 0; b < n; b++)
        cout << B[b] << " ";
    
    cout << '\n';
 
    cout << "max in integer array = " << Max(A, sizeof(A)/sizeof(int)) << '\n';
    cout << "max in double array = " << Max(B, sizeof(B)/sizeof(double)) << '\n';
 
    int *a = new int(A[n]);
    double *b = new double(B[n]);
 
    cout << Sum(a, first, last) << '/n'; //не понимаю как записать результат
    cout << Sum(b, first, last) << '/n'; //не понимаю как записать результат
 
system("pause");
return 0;
}
 
int Sum(int *a, int first, int last);
{
    for(int i = 0; i < n; i++)
        if(a[i]<0) {first=a[i]; break};
    
    for(int k = n; k >= 0; k--)
        if(a[k] < 0) {last = a[k]; break}
        
    int s = 0;
        for(int b = first + 1; b < last; b++)
            s+=a[b];
 
    return s;
}
 
double Sum(double *a, double first, double last);
{
    for(int i = 0; i < n; i++)
        if(a[i]<0) {first=a[i]; break};
    
    for(int k = n; k >= 0; k--)
        if(a[k] < 0) {last = a[k]; break}
        
    double s = 0;
        for(int b = first + 1; b < last; b++)
            s+=a[b];
 
    return s;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru