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

шаблонные функции. Ошибка - C++

Восстановить пароль Регистрация
 
A0A
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 36
08.12.2013, 21:18     шаблонные функции. Ошибка #1
Не признаёт среднее значение и нулевой элемент.

C++ (Qt)
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
88
89
90
91
92
93
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <time.h>
using namespace std;
 
template <typename T> // максимальное и минимальное значение элементов матрицы:
T max(T **mint, int x, int y)
{   
    int max = mint[0][0];
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if ( max < mint[i][j] ) max = abs( mint[i][j] );
        }
    }
    return max;
}
 
template <typename T>
T min(T **mint, int x, int y)
{   
    int min = mint[0][0];
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if ( min > mint[i][j] ) min = abs( mint[i][j] );
        }
    }
    return min;
}
template <typename Y>// среднее арифметическое значение элементов строк и столбцов матрицы
Y srednee(int **mint, int x, int y)
{
    int summ = 0;
    double sred;
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            summ += mint[i][j];
        }
    }
    sred = summ / (x * y);
    return sred;
}
 
template <typename T>   // количество столбцов, не содержащих ни одного нулевого элемента
int nullel(int **mint, int x, int y)
{
    int nulle = 0;
    bool flag = true;
    for (int j = 0; j < y; j++)
    {
        flag = true;
        for (int i = 0; i < x; i++)
        {
            if ( mint[i][j] == 0)
            {
                flag = false;
            }
        }
        if (flag)
        {
            nulle++;
        }
    }
    return nulle;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand (static_cast <unsigned int> (time(NULL)));
    setlocale (LC_ALL, "russian");
    const int x = 10, y = 14;
    int mint[x][y];                     
    for (int i = 0; i < x ; i++)
        for (int j=0; j<y; j++)
            mint[i][j] = rand()%50;
    for (int i = 0; i < x ; i++) 
    {
        for (int j=0; j<y; j++)
        cout << setw(3) << mint[i][j] << " ";
    }
    cout << "Cреднее арифметическое значение элементов = " << srednee(**mint, 10, 14) << endl;
    cout<<"Максимальный по модулю элемент матрицы = "<< max(**mint, 10, 14) << endl;
    cout<<"Минимальный по модулю элемент матрицы = "<< min(**mint, 10, 14) << endl;
    cout << "Количество столбцов, не содержащих ни одного нулевого элемента = " << nullel(**mint, 10, 14)  << endl;
    system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 21:18     шаблонные функции. Ошибка
Посмотрите здесь:

C++ Шаблонные функции
Шаблонные функции C++
C++ Шаблонные функции
C++ Шаблонные функции
Шаблонные функции C++
C++ шаблонные функции
Шаблонные функции C++
Шаблонные функции в C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.12.2013, 21:39     шаблонные функции. Ошибка #2
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <time.h>
using namespace std;
 
template <typename T> // максимальное и минимальное значение элементов матрицы:
T max(T **mint, int x, int y)
{   
    T max = mint[0][0];
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if ( max < mint[i][j] ) max = abs( mint[i][j] );
        }
    }
    return max;
}
 
template <typename T>
T min(T **mint, int x, int y)
{   
    T min = mint[0][0];
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if ( min > mint[i][j] ) min = abs( mint[i][j] );
        }
    }
    return min;
}
template <typename Y>// среднее арифметическое значение элементов строк и столбцов матрицы
double srednee(Y **mint, int x, int y)
{
    Y summ = 0;
    double sred;
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            summ += mint[i][j];
        }
    }
    sred = summ / (x * y);
    return sred;
}
 
template <typename T>   // количество столбцов, не содержащих ни одного нулевого элемента
int nullel(T **mint, int x, int y)
{
    int nulle = 0;
    bool flag = true;
    for (int j = 0; j < y; j++)
    {
        flag = true;
        for (int i = 0; i < x; i++)
        {
            if ( mint[i][j] == 0)
            {
                flag = false;
            }
        }
        if (flag)
        {
            nulle++;
        }
    }
    return nulle;
}
 
int main()
{
    srand (static_cast <unsigned int> (time(NULL)));
    setlocale (LC_ALL, "russian");
    const int x = 4, y = 5;
    
    int** mint = new int*[x];
    for (int i = 0; i < x; ++i)
        mint[i] = new int[y];
    
    for (int i = 0; i < x ; i++)
        for (int j=0; j<y; j++)
            mint[i][j] = rand()%50;
    for (int i = 0; i < x ; i++) 
    {
        for (int j=0; j<y; j++)
            cout << setw(3) << mint[i][j] << " ";
        cout << endl;
    }
    cout << "Cреднее арифметическое значение элементов = " << srednee(mint, x, y) << endl;
    cout<<"Максимальный по модулю элемент матрицы = "<< max(mint, x, y) << endl;
    cout<<"Минимальный по модулю элемент матрицы = "<< min(mint, x, y) << endl;
    cout << "Количество столбцов, не содержащих ни одного нулевого элемента = " << nullel(mint, x, y)  << endl;
    
    for (int i = 0; i < x; ++i)
        delete [] mint[i];
     delete [] mint;
    
    system ("pause");
    return 0;
}
Yandex
Объявления
08.12.2013, 21:39     шаблонные функции. Ошибка
Ответ Создать тему
Опции темы

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