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

Функции - C++

Восстановить пароль Регистрация
 
senderlender
5 / 5 / 1
Регистрация: 03.12.2013
Сообщений: 50
03.12.2013, 02:48     Функции #1
Всем доброго времени суток. Возник вопрос по этому коду:

Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int N=25;
    int a[N][N], b[N][N], m, n, l=0, c=0;
    int min=0, max=0, p=0, z=0;
    do
    {
        cout<<"Enter size mass"<<endl;
        cout<<"Gorizont=";
        cin>>m;
        cout<<"Vertikal=";
        cin>>n;
    }while(m<1||n<1||m>25||n>25);
 
    for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
                cin>>a[i][j];
        }
    cout<<endl;
 
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            for(int k=j+1; k<m; k++)
            {
                if(a[i][j]==a[i][k])
                    l++;
                if(a[i][j]!=a[i][k])
                    z++;
            }
        }
        if(z>c)
            min=i;
        c=z;
        z=0;
        if(l>p)
            max=i;
        p=l;
        l=0;
    }
 
    for(int j=0; j<m; j++)
    {
        b[0][j]=a[max][j];
        a[max][j]=a[min][j];
        a[min][j]=b[0][j];
    }
 
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}


Программа делает вот что: В двух мерном массиве ищет строку с наиболее различным количеством элементов и с наиболее одинаковым при этом меняя их местами.
В этом коде необходимо задать функцию которая и будет искать эти строки. То есть вот этот участок кода:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            for(int k=j+1; k<m; k++)
            {
                if(a[i][j]==a[i][k])
                    l++;
                if(a[i][j]!=a[i][k])
                    z++;
            }
        }
        if(z>c)
            min=i;
        c=z;
        z=0;
        if(l>p)
            max=i;
        p=l;
        l=0;
    }



Но как вы ведите необходимы в главной функции две перемененных мин и макс. Возникла вот такая идея:

Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int *pr_str(int **a, int m, int n);
int _tmain(int argc, _TCHAR* argv[])
{
    const int N=25;
    int m, n, l=0, c=0;
    int min=0, max=0, p=0, z=0;
    int **a=new int *[N];
    int **b= new int *[N];
    for (int i=0; i<N; i++)
    {
        a[i]=new int [N];
        b[i]=new int [N];
        for (int j=0; j<N; j++)
        {
            a[i][j]=0;
            b[i][j]=0;
        }
 
    }
 
    do
    {
        cout<<"Enter size mass"<<endl;
        cout<<"Gorizont=";
        cin>>m;
        cout<<"Vertikal=";
        cin>>n;
    }while(m<1||n<1||m>25||n>25);
 
    for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
                cin>>a[i][j];
        }
    cout<<endl;
 
    int *p=pr_str(a, m, n);
    min=p[0];
    max=p[1];
 
    for(int j=0; j<m; j++)
    {
        b[0][j]=a[max][j];
        a[max][j]=a[min][j];
        a[min][j]=b[0][j];
    }
 
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}
 
int *pr_str(int **a, int m, int n)
{
    int z=0, c=0, l=0, p=0, min, max;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            for(int k=j+1; k<m; k++)
            {
                if(a[i][j]==a[i][k])
                    l++;
                if(a[i][j]!=a[i][k])
                    z++;
            }
        }
        if(z>c)
            min=i;
        c=z;
        z=0;
        if(l>p)
            max=i;
        p=l;
        l=0;
    }
    int *g = new int [2];
    g[0]=min;
    g[1]=max;
    return g;
}


И здесь выбивает ошибку на этом участке кода:

Кликните здесь для просмотра всего текста
C++
1
2
3
int *p=pr_str(a, m, n);
    min=p[0];
    max=p[1];


Пожалуйста помогите разобраться...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 02:48     Функции
Посмотрите здесь:

C++ определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер?
C++ C++ Функции Массив (переписать в виде функции)
Функции.Зачем нужны void функции? C++
C++ Не работают функции <math.h> в методе (функции-члене)
Применение переменных одной функции в другой функции C++
C++ Работа функции qsort - объяснить работу функции
C++ С++ - map с указателями на функции и функции в классе
Разница в работе созданной функции и основной функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
03.12.2013, 13:39     Функции #2
C++
1
2
3
4
5
int _tmain(int argc, _TCHAR* argv[])
{
 const int N=25;
 int m, n, l=0, c=0;
 int min=0, max=0, p=0, z=0;  /* Переменная p уже определена как int */
А здесь попытка определить int* p
Цитата Сообщение от senderlender Посмотреть сообщение
int *p=pr_str(a, m, n);
min=p[0];
max=p[1];
Yandex
Объявления
03.12.2013, 13:39     Функции
Ответ Создать тему
Опции темы

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