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

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

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
24.11.2012, 22:45     Как вернуть индексы массива в функции? #1
Подскажите пожалуйста, как вернуть 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?
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21490 / 10243 / 1668
Регистрация: 12.02.2012
Сообщений: 17,123
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
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
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     Как вернуть индексы массива в функции?
Ответ Создать тему
Опции темы

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