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

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

Войти
Регистрация
Восстановить пароль
 
 
novak
2 / 2 / 0
Регистрация: 14.04.2011
Сообщений: 141
#1

Возвращение значения в классе - C++

14.11.2011, 19:17. Просмотров 972. Ответов 16
Метки нет (Все метки)

Подскажите, плиз, один нюанс в проге.
Вот листинг (сильно в него можно и не вникать кроме кое-каких строк):

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 <iostream>
#include <cmath>
using namespace std;
 
class Matrix
{
 private:
    int n; // порядок матрицы
    int *data; // указатель на массив
 public:
    Matrix(int an = 1);
    ~Matrix();
    int find();
    void print();
    void input();
 
};
 
Matrix::Matrix(int an /* = 1 */)
{
    data = new int[an*an];
    n = an;
    for (int i=0; i< n; i++)
        for (int j=0; j< n; j++)
         data[i * n + j] = 0;
}
 
Matrix::~Matrix()
{
    delete [] data;
}
 
void Matrix::print()
{
    for (int i=0; i< n; i++)
    {
        for (int j=0; j< n; j++)
           cout << data[i * n + j] << " ";
        cout << endl;
    }
}
 
void Matrix::input()
{
    for (int i=0; i< n; i++)
        for (int j=0; j< n; j++)
          cin >> data[i * n + j];
}
 
int Matrix::find()
{
int b,c,min,nst,nstr,nstr1=0,nst1=0,e,flag;
for(b=0;b<n;b++)     //АНАЛИЗ ДАННЫХ МАТРИЦЫ
{
flag=0;
min=data[n*b];
nst=0;
nstr=0;
for(c=0;c<n;c++)     
{
if(data[b*n+c]<=min)
{min=data[b*n+c];
nst=c;             
nstr=b;}           
}
for(e=0;e<n;e++)   /
{if(data[nst+n*e]>min)  
flag=1;}           
if(flag==0)         /
{nstr1=nstr+1;       
nst1=nst+1;}
}
return nst1;
return nstr1;
}
 
int main()
{
    SetConsoleOutputCP(1251);
    Matrix M(2);
    cout << "Vvod matrix" << endl;
    M.input();
    cout << "Matrix:" << endl;
    M.print();
    cout << "Nomer stroki= " << M.find() <<endl;
    return 0;
}
В строках 73,74 нужно вернуть два значения nst1 и nstr1 в основную программу, чтобы строка 85 выводила оба этих значения. Но получается выводить только одно значение. Как сделать чтобы выходило оба значения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 19:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Возвращение значения в классе (C++):

Возвращение значения - C++
Понятно, когда функция возвращает число или тип bool, вот так: return true; return 0; return -1; и т.п. но что может означать...

Возвращение значения из функции - C++
Ребят, подскажите, когда функция возвращает значение из функции, то в памяти создается копия значения? Я все время думал что функция на...

Возвращение вычисленного значения - C++
Пусть v1=v2=0; v3=1.5; vi=((i+1)/i^2+1))*V(i-1)-V(i-2)*V(i-3); i=4.5, ...Дано натуральное число n (n&gt;=4).Значение переменной n передается в...

Возвращение значения функции - C++
Как сделать отдельно функцию, чтобы она возвращала в основную функцию значение sum? Помогите пожалуйста! #include &lt;stdio.h&gt; ...

Возвращение значения функции - C++
Подскажите, что означает эта запись, что она возвращает понять не могу. static FUnknown* createInstance (void* context) { ...

Про возвращение значения... - C++
Как написать ф-цию,возвращающую значение 1,если в строке содержится хотя бы один символ &quot;.&quot; ?

16
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 20:28 #16
С локальным массивом я ошибся — согласен.
А по поводу моего последнего кода — можно так возвращать значения? Хотя бы теоретически, про лучший способ я понял.
__________
Я так думаю могут проблемы возникнуть, если потом эти внутренние переменные класса будут захвачены другими функциями и изменятся. Там ведь просто адрес передаётся. Вроде разобрался.
0
novak
2 / 2 / 0
Регистрация: 14.04.2011
Сообщений: 141
14.11.2011, 20:42  [ТС] #17
Всем спасибо за помощь.
Но мне нужно еще одно серьезное дополнение в этой программе.
Нужно чтобы пользователь задавал размерность матрицы и для этого надо массив разместить в динамической памяти. Подскжите как это сделать?
0
14.11.2011, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 20:42
Привет! Вот еще темы с ответами:

возвращение ненулевого значения - C++
Подскажите если функция возвращает ненулевое значение оно каждый раз меняется или как. Вот например #include &lt;iostream.h&gt; #include...

Про возвращение значения 2... - C++
если в строке идентификатор,то возвратить ф-ции значение 1=да, 0=нет как индефикатор в общем показать?

Возвращение значения из функции - C++
Добрый день. Вообщем, проблема такова: есть такой исходник (ниже), в нем находятся 3 функции (main, reading и Proverka). Вся суть вопроса в...

Возвращение значения функции - C++
Я создала структуру и конструктор. Нужно создать функцию типа этой структуры add_one_minute, которая будет прибавлять одну минуту. Но я не...


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

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

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