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

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

Войти
Регистрация
Восстановить пароль
 
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
#1

передача двумерного массива - C++

03.12.2011, 17:20. Просмотров 671. Ответов 9
Метки нет (Все метки)

Разработать программу с шаблонными функциями для типов int, float и double. Данные в функции передаются в качестве параметров. Использование глобальных переменных в функциях не допускается.

Дана целочисленная прямоугольная матрица. Написать программу, определяющую величины: количество элементов матрицы, больших величины b.

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
#include <iostream>
#include <ctime>
using namespace std;
 
template<typename Type>
int kolvo (Type mass, const int n, const int m, Type b)
{
    int s=0;
    for (int i=0; i<n; i++)
    {
         for(int j=0; j<m; j++)
         {
             if (mass[i][j]>b)
             {
                 s++;
             }
         }
    }
   return s;
}
 
void main()
{
    setlocale(LC_ALL,"Russian");
    const int n(10);
    const int m(11);
    int mass[n][m];
    srand (time(NULL));
    int num;
//Заполняем массив
    for(int i=0;i<10;i++)
    {
        for (int j=0; j<11; j++)
        {
            num = rand() %100;
            mass[i][j] = num;
        }
    }
//Выводим массив
    for (int i=0; i<10; i++)
    {
         for(int j=0; j<11; j++)
         {
             cout<<mass[i][j]<<"\t";
         }
    }
//Вводим величину b
    int b;
    cout<<"Введите b:"<<" "<<endl;
    cin>>b;
//Выводим кол-во элементов
    cout<<kolvo (mass, n, m, b)<<endl;
}
Подскажите что я делаю неправильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 17:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос передача двумерного массива (C++):

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

Передача двумерного массива - C++
Искал по поиску , но так и не получилось у меня решить мою проблему с передачей динамического двумерного массива #include&lt;iostream&gt; ...

Передача двумерного массива - C++
Помогите разобраться int func(int *arr) { arr=1; } void main(){ int arr; arr=1;

Передача двумерного массива в функции - C++
Здравствуйте. В c++ недавно. Компилятор ругается. Как правильно передать двумерный массив в функции? И вообще, какие замечания по коду? ...

Передача двумерного массива в функцию - C++
Доброго времени суток. Как можно передать двумерный массив в функцию? Допустим есть функция: void filingMatrix(??). Пробовал сделать: ...

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

9
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
03.12.2011, 17:25 #2
C++
1
int kolvo (Type **mass, const int n, const int m, Type b)
0
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
03.12.2011, 17:32  [ТС] #3
Цитата Сообщение от amor1k Посмотреть сообщение
C++
1
int kolvo (Type **mass, const int n, const int m, Type b)
Да я вот пробовал и так и сяк уже, но не работает.

Если писать **mass, то выдает: "error C2784: int kolvo(Type **,const int,const int,Type): не удалось вывести аргумент шаблон для "Type **" из "int [10][11]"".
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
03.12.2011, 17:37 #4
В вашем случае можно написать так
C++
1
int kolvo (Type mass[][11], const int n, const int m, Type b)
можно еще так, только массив нужно объявить динамически в main
C++
1
int kolvo (Type **mass, const int n, const int m, Type b)
C++
1
2
3
4
int **mass;
mass = new int [n];
for(int i = 0; i < m; i++)
    mass[i] = new int [m];
0
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
03.12.2011, 17:38  [ТС] #5
Вот скрин еще...
0
Миниатюры
передача двумерного массива  
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
03.12.2011, 17:39  [ТС] #6
Цитата Сообщение от amor1k Посмотреть сообщение
В вашем случае можно написать так
C++
1
int kolvo (Type mass[][11], const int n, const int m, Type b)
И так тоже пробовал уже, ошибка: error C2784: int kolvo(Type **[][11],const int,const int,Type): не удалось вывести аргумент шаблон для "Type **[][11]" из "int [10][11]"
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
03.12.2011, 17:43 #7
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
#include <iostream>
#include <ctime>
using namespace std;
 
template<typename Type>
int kolvo (Type mass[][11], const int n, const int m, Type b)
{
    int s=0;
    for (int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if (mass[i][j]>b)
            {
                s++;
            }
        }
    }
    return s;
}
 
void main()
{
    setlocale(LC_ALL,"Russian");
    const int n(10);
    const int m(11);
    int mass[n][m];
    int num;
    //Заполняем массив
    for(int i=0;i<10;i++)
    {
        for (int j=0; j<11; j++)
        {
            num = rand() %100;
            mass[i][j] = num;
        }
    }
    //Выводим массив
    for (int i=0; i<10; i++)
    {
        for(int j=0; j<11; j++)
        {
            cout<<mass[i][j]<<"\t";
        }
    }
    //Вводим величину b
    int b;
    cout<<"Введите b:"<<" "<<endl;
    cin>>b;
    //Выводим кол-во элементов
    cout<<kolvo (mass, n, m, b)<<endl;
}
у меня запускается без единой ошибки
0
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
03.12.2011, 17:50  [ТС] #8
И правда работает, после того как перезапустил студию...

Но вопрос остается открытым, писать mass[][11] в шаблоне не гуд... Как как передавать заданный массив с размерностью mass[n][m]?
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
03.12.2011, 17:53 #9
можно динамически, я привел пример.
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
#include <iostream>
#include <ctime>
using namespace std;
 
template<typename Type>
int kolvo (Type **mass, const int n, const int m, Type b)
{
    int s=0;
    for (int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if (mass[i][j]>b)
            {
                s++;
            }
        }
    }
    return s;
}
 
void main()
{
    setlocale(LC_ALL,"Russian");
    const int n(10);
    const int m(11);
    int **mass;
    mass = new int *[n];
    for(int i = 0; i < m; i++)
        mass[i] = new int [m];
    int num;
    //Заполняем массив
    for(int i=0;i<n;i++)
    {
        for (int j=0; j<m; j++)
        {
            num = rand() %100;
            mass[i][j] = num;
        }
    }
    //Выводим массив
    for (int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            cout<<mass[i][j]<<"\t";
        }
    }
    //Вводим величину b
    int b;
    cout<<"Введите b:"<<" "<<endl;
    cin>>b;
    //Выводим кол-во элементов
    cout<<kolvo (mass, n, m, b)<<endl;
}
1
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
03.12.2011, 18:16 #10
прототип
C
1
int kolvo (Type mass[][11], const int n, const int m, Type b);
вызов
C
1
kolvo (mass, n, m, b);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 18:16
Привет! Вот еще темы с ответами:

Передача двумерного массива в функцию - C++
проблема в том что в функция inicil не изменяет похожу массива, и в output выводятся нелепые числа... #include &lt;iostream&gt; #include...

Передача двумерного массива в функцию - C++
в функцию set_ships передаю массив human, появляется ошибка cannot convert `int (*)' to `int**' for argument `1' to `void set_ships(int**)'...

Передача в функцию двумерного массива - C++
Доброго времени суток. Есть двумерный массив, размерностью n на m. Нужно передать его в качестве параметра в функцию 1) обычным способом 2)...

Передача двумерного массива в функцию - C++
Здравствуйте, появился новый вопрос на тему указателей: как передать двумерный массив в функцию ну и для проверки модифицировать его. ...


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

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

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