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

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

Войти
Регистрация
Восстановить пароль
 
Headmaster
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 80
#1

Вызов функции, которая возвращает 2 параметра - C++

14.05.2013, 20:16. Просмотров 490. Ответов 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <string>
#include <iostream>
#include <string>
#include <math.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
class Matrix
{
    int **mass;
    int n;
public:
    Matrix();
    ~Matrix();
    int maxmin(int &, int &);
    void show();
};
int Matrix::maxmin(int &max,int &min) //нахождение макс и мин элемента
{
    int a;
    cout<<"Vvedite stolbec:"<<endl;
    cin>>a;
    a=a-1;
    max = mass[0][a];
    min = mass[0][a];
    for(int i = 0; i < n; i++)
    {
            if(max < mass[i][a])
            {
                max = mass[i][a];
            }
            if (min > mass[i][a])
            {
                min = mass[i][a];
            }
    }
    return max, min;
}
Matrix::Matrix()
{
    cout<<"Vvedite razmernost:"<<endl;
    cin>>n;
    mass=new int*[n];
    cout<<"Vvedite matricu:"<<endl;
    for(int i=0;i<n;i++)
    {
        mass[i]=new int[n];
        for(int j=0;j<n;j++)
            cin >> mass[i][j];
    }
}
Matrix::~Matrix()
{
    for (int i=0; i<n; i++)
        delete []mass[i];
    delete []mass;
}
void Matrix::show()
{
    cout<<"Matrica"<<endl;
        for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            cout<<mass[i][j]<<" "<<endl;
    }
    cout<<"Max i min elementi vibrannogo stolbca:"<<maxmin(max &, min &)<<endl;
}
void main()
{
    Matrix A=*new Matrix();
    A.show();
}
Ругается на эту строчку, error C2059: синтаксическая ошибка: ,

C++
1
    cout<<"Max i min elementi vibrannogo stolbca:"<<maxmin(max &, min &)<<endl;
Называл вроде все понятно, надеюсь комментарии к коду особо не нужны. Если разбивать на 2 метода (нахождение максимального и минимального элемента), то следующая часть задания не выйдет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2013, 20:16     Вызов функции, которая возвращает 2 параметра
Посмотрите здесь:

C++ Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное пользователем. Массив целочисленный, передается функции
C++ Написать функцию, которая в зависимости от значения первого параметра возвращает количество отрицательных или положительных чисел призвольного массива
C++ Функция, которая возвращает среднее арифметическое элементов параметра-массива
C++ Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего параметра функции.
C++ Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра C++
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12675 / 7183 / 801
Регистрация: 27.09.2012
Сообщений: 17,709
Записей в блоге: 2
Завершенные тесты: 1
14.05.2013, 20:19     Вызов функции, которая возвращает 2 параметра #2
1. Функции возвращают только один параметр:
C++
1
return max, min;
равносильно
C++
1
2
max;
return min;
Добавлено через 18 секунд
2. Это что за синтаксис?
C++
1
maxmin(max &, min &)
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
14.05.2013, 20:19     Вызов функции, которая возвращает 2 параметра #3
Функция не может возвращать более одного параметра. Пишите две отдельные функции.
stima
444 / 293 / 20
Регистрация: 22.03.2011
Сообщений: 957
Завершенные тесты: 2
14.05.2013, 20:21     Вызов функции, которая возвращает 2 параметра #4
C++
1
2
3
int max, min;
maxmin(max, min);
cout << "Max i min elementi vibrannogo stolbca:" << max << " " << min <<endl;
Добавлено через 1 минуту
C++
1
void maxmin(int &, int &);
Стрелок
42 / 42 / 7
Регистрация: 29.02.2012
Сообщений: 73
14.05.2013, 20:26     Вызов функции, которая возвращает 2 параметра #5
объявляя таким образом:
C++
1
int Matrix::maxmin(int &max,int &min)
вы уже можете тупо присвоить значение max и min и в теле программы просто передать значения
C++
1
2
3
4
5
6
7
int main()
{
     int max, min;
     Matrix A=*new Matrix();
     A.maxmin(max, min);
     cout << max << min << endl;
}
и
C++
1
int Matrix::maxmin(int &max,int &min)
заменить на
C++
1
void Matrix::maxmin(int &max,int &min)
или просто return 0; поставить
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
14.05.2013, 20:26     Вызов функции, которая возвращает 2 параметра #6
можно возврат сделать std:: pair. Чтобы вернуть два параметра.
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
14.05.2013, 20:46     Вызов функции, которая возвращает 2 параметра #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
#include <iostream>
 
template <typename Iterator>
std::pair <int, int> userMinMax(Iterator firstInputIterator, Iterator lastInputIterator)
{
    int minimal(*firstInputIterator);
    int maximal(*firstInputIterator);
    for (Iterator iter = firstInputIterator; iter != lastInputIterator; ++iter) {
        minimal = minimal > *iter ? *iter : minimal;
        maximal = maximal < *iter ? *iter : maximal;
    }
    std::pair <int, int> result(minimal, maximal);
 
    return result;
}
 
int main()
{
    const std::size_t arraySize(10);
    int array[arraySize] = {10, 4, 53, 34, 65, 43, 32, 23, 68, 64};
 
    auto minmax(userMinMax(array, array + arraySize));
    std::cout << minmax.first << " " << minmax.second << std::endl;
 
    return 0;
}
Headmaster
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 80
14.05.2013, 21:19  [ТС]     Вызов функции, которая возвращает 2 параметра #8
не очень понял некоторые ответы, отвечу те по которым более менее ясно

Цитата Сообщение от Стрелок Посмотреть сообщение
A.maxmin(max, min);
сделал так как вы сказали, ругается на вызов этой строчки


Цитата Сообщение от Ev[G
eN;4556548]Код C++
видимо вы шаблон взяли из какой-то своей бывшей программы. Сложно мне сейчас под свою переделать, то-ли устал, то-ли знаний не хватает. Обязательно потом проверю, спасибо

Цитата Сообщение от SeregaC++ Посмотреть сообщение
std:: pair
не знаю как с std:: pair правильно работать, но постараюсь в инете найти. Спасибо
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
14.05.2013, 21:32     Вызов функции, которая возвращает 2 параметра #9
Цитата Сообщение от Headmaster Посмотреть сообщение
не знаю как с std:: pair правильно работать, но постараюсь в инете найти. Спасибо
я же сделал как пример. ну, может и непонятно, конечно
Цитата Сообщение от Ev[G
eN;4556548]
C++
1
2
std::pair <int, int> result(minimal, maximal);
return result;
Цитата Сообщение от Ev[G
eN;4556548]
C++
1
2
auto minmax(userMinMax(array, array + arraySize));
std::cout << minmax.first << " " << minmax.second << std::endl;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2013, 22:20     Вызов функции, которая возвращает 2 параметра
Еще ссылки по теме:

Правило использования функции, которая возвращает массив C++
C++ Функция, которая получает два параметра и возвращает результат деления первого параметра на второй
C++ Вызов функции с ссылкой на структуру в качестве параметра
C++ Разработать функцию, которая возвращает остаток от деления первого параметра на второй
Функция возвращает остаток от деления первого параметра на второй. Указать ошибку C++

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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.05.2013, 22:20     Вызов функции, которая возвращает 2 параметра #10
Headmaster, чтобы понять код предоставленный ув.
Ev[G]eN, также необходимо обратиться к документации по стандарту с++11
Yandex
Объявления
14.05.2013, 22:20     Вызов функции, которая возвращает 2 параметра
Ответ Создать тему
Опции темы

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