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

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

Войти
Регистрация
Восстановить пароль
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

Как вернуть индексы массива в функции? - C++

24.11.2012, 22:45. Просмотров 391. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста, как вернуть mi, mj ?(надо вернуть индексы массива)
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
#include <stdio.h>
#include <string.h>
#include <math.h>
 
int index(int A[3][4]);
 
int main()
{
    int A[3][4];
    int t, k;
 
    /*циферки проставели в нашем двумерном массиве*/
    for(t=0; t<3; t++)
        for(k=0; k<4; k++) {
            A[t][k] = (t*4)+k+1;
        };
 
    printf("%d\n",index(A));
 
   
    getchar();
    return 0;
}
 
int index(int A[3][4])
{
    int max, i ,j, mi, mj;
    mi = 0;
    mj = 0;
    max = A[0][0]; //задали начало
 
    for(i=0; i<3; i++)
        for(j=0; j<4; j++)
            if(A[i][j]>max && A[i][j]==pow(double(int(sqrt(double(A[i][j])))), 2)) {
                max = A[i][j];
                mi = i;
                mj = j;
            };
 
    return mi, mj; // как вернуть эти mi, mj?
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 22:45     Как вернуть индексы массива в функции?
Посмотрите здесь:

Как вернуть значение функции C++
Преобразование массива. Нечетные индексы слева, четные индексы справа C++
Как вернуть сразу 2 значения массива в функции? C++
Как вернуть массив из функции? C++
Как вернуть из функции два значения C++
Как вернуть массив из функции? C++
C++ Как вернуть массив из функции?
Как вернуть string из функции? C++
C++ Как вернуть значение функции в С++
C++ Как вернуть массив из функции?
C++ Функции, как вернуть значение?
Как вернуть вектор из функции? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21772 / 10496 / 1701
Регистрация: 12.02.2012
Сообщений: 17,486
24.11.2012, 22:56     Как вернуть индексы массива в функции? #2
"В лоб" - никак. Решить проблему можно так:

1) поскольку матрица имеет размеры 3*4, то индексы можно "упаковать" в одно целое:

C++
1
  return 10*mi+mj;
Тогда, чтобы получить их в вызывающей программе, нужно будет поступить так:

C++
1
2
3
      int k=index(...);
      mj=k % 10;
      mi=k \ 10;
2) оформить index вот так:

C++
1
void index(int A[3][4], int & mi, int & mj)
Тогда return не нужен.
Rexer
 Аватар для Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 723
24.11.2012, 22:57     Как вернуть индексы массива в функции? #3
Так нельзя как вы написали
Как вариант добавить их в массив m[2] и вернуть его,понятное дело,что m1 будет в m[0] и так далее
Почему вам такой вариант не нравится?
Либо передать в функцию m1 и m2 не по значению,а адреса их,т.е работать с указателем,тогда и возвращать не надо будет - вы с ними итак работаете
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
24.11.2012, 23:31  [ТС]     Как вернуть индексы массива в функции? #4
Вопрос исчерпан
Yandex
Объявления
24.11.2012, 23:31     Как вернуть индексы массива в функции?
Ответ Создать тему
Опции темы

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