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

Передача двумерного массива в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сохранение массива в файл http://www.cyberforum.ru/cpp-beginners/thread300621.html
Подскажите, плз., можно ли сохранить массив в файл. Т.е. дан массив M. Ввожу числовые и строчные данные в массив. Затем нужно массив M сохранить в FILE. Это реально или ничего подобного?
C++ Название папки проекта Столкнулся с такой проблеммой, создал проект в MVS2008, в него входили три файла. Первый - заголовочный к классу, второй - сам класс, и третий - основной. При отладке выползла ошибка, что не может найти заголовочный файл. После того как я создал новый проект с коротким названием и просто скопировал содержимое файлов в аналогично созданные, все замечательно заработало. Вопрос, какая доступная... http://www.cyberforum.ru/cpp-beginners/thread300603.html
C++ Фильтр в DBFrid
Здравствуйте,Пытаюсь выполнить фильтр данных в DBGrid с помощью CheckBox, данные для сравнения ввожу в Edit, но выдаёт ошибку "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом" if (CheckBox4->Checked==true) { DataModule3->tblBluda->Filter="(Kategoriya=="+Edit5->Text+ ")"; DataModule3->tblBluda->Filtered=true; } ...
Заменить в исходном файле все отрицательные числа на положительные и наоборот C++
На экзамене попалась задачка, но решить ее до конца я так и не смог,за что поплатился низким баллом. Дан файл. Написать программу, заменяющую в исходном файле все отрицательные числа на положительные и наоборот - положительные на отрицательные.
C++ односвязные и двусвязные списки http://www.cyberforum.ru/cpp-beginners/thread300591.html
Задача: Дан перечень студентов группы с указанием табельного номера, ФИО студента, размера стипендии, года рождения (файл). Используя приемы работы с односвязными и двусвязными списками, написать программу, реализующую функцию: Найти общую сумму выплаты стипендии. реализовать функции добавления и удаления k-ой записи (с проверками на корректность действий), вывода содержимого и очистки списка....
C++ Треугольник и точка Задача С клавиатуры вводится координаты вершин треугольника и координаты точки с .Определить лежит ли точка в треугольнике.И если можно поподробнее объяснить ,что делаем в той или иной строчки.)) подробнее

Показать сообщение отдельно
Borsch
 Аватар для Borsch
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 10
22.05.2011, 11:27  [ТС]     Передача двумерного массива в функцию
Таки доделал программу. Кстати говоря, без лукавого параметра int**. Итак, предлагаю на ваш суд. Программа работает отлично, всё находит и меняет. Можете прямо отсюда скопипастить в Visual Studio.
Про задание: оно было некорректное, поэтому теперь задача программы - с помощью функций находить минимальное значение в матрице и его координаты двух матриц. Использовать функцию для обмена минимальными значениями в матрицах А(4,3) и В(7,3).
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#define randomize() (srand(time(0))) //рандом в Visual C++ 2010
using namespace std; //использование стандартного пространств имён
 
//константы
#define X 4
#define Y 3
#define K 7
#define L 3
 
//Функция нахождения минимального значения в матрице
//&zero_i и &zero_j - это ссылки на переменные, в которые будут запоминаться координаты минимума
void find_minimalz(int* arr, int len_i, int len_j, int &zero_i, int &zero_j)
{
 
    int counter = 0, min=*arr;
    for (int i = 0; i < len_i; i++)
    {
        for (int j = 0; j < len_j; j++)
        {
            if (min > *(arr+counter))
            {
                min = *(arr+counter);
                zero_i = i;
                zero_j = j;
            }
            counter++;
        }
    }
}
void obmenka(int *arr1, int *arr2, int fi, int fj, int si, int sj) 
{
    //cout<<*arr1;      Выведет первый (нулевой) элемент первой матрицы. 
    //cout<<*(arr1+1);  Выведет второй  (первый) элемент первой матрицы.
     cout <<endl<<"Говорит функция! Массивы приняты!"<<endl;
     cout <<"Минимальное значение первого массива: "<<*(arr1+(3*fi+fj))<<endl;
     cout <<"Минимальное значение второго массива: "<<*(arr2+(3*si+sj))<<endl;
    int temp;
    temp = *(arr1+(3*fi+fj));
    *(arr1+(3*fi+fj)) = *(arr2+(3*si+sj));
    *(arr2+(3*si+sj)) = temp;
}
 
void main() {
    //Поддержка кириллицы activated
    setlocale (LC_CTYPE, "Russian");
 
    //задали две матрицы
    int first[X][Y];
    int second[K][L];
 
    //задали начальные значения запоминающих переменных
    int first_i=0, first_j=0, second_i=0, second_j=0;
 
    //счетчики (можно было ограничиться лишь i и j)
    int i, j, I, J;
 
    randomize();
 
    //задаем рандомно первый массив
    cout<<"Original first array "<<endl;
        for (i=0; i<X; i++) 
    {
            for (j=0; j<Y; j++) 
            {
                first[i][j]=(rand() % 100) - 5;
                cout<<setw(5)<<first[i][j];
            }
            cout<<endl; 
    }
    cout<<endl;
    
    //задаем рандомно второй массив
    cout<<"Original second array "<<endl;
    for (I=0; I<K; I++) 
    {       for (J=0; J<L; J++)
            {     
                second[I][J]=(rand() % 100) - 5;
                cout<<setw(5)<<second[I][J];
            }
            cout<<endl; 
    }   
    cout<<endl;
 
    //Вызов функции нахождения минимального значения и координат его
    find_minimalz(*first, X, Y, first_i, first_j);
    find_minimalz(*second, K, L, second_i, second_j);
 
    //Вывод координат минимальных значения в 1 и 2 матрицах
    cout<<setw(4)<<"     stroka - stolbec"<<endl;
    cout<<setw(4)<<"1 Matrix: "<<first_i<<" - "<<first_j<<endl;
    cout<<setw(4)<<"2 Matrix: "<<second_i<<" - "<<second_j<<endl;
    
    //Вызов функции обмена
    obmenka(&first[0][0], &second[0][0], first_i, first_j, second_i, second_j);
    cout<<endl;
 
    //выводим измененную первую матрицу
    cout<<"New first array "<<endl;
        for (i=0; i<X; i++) 
    {
            for (j=0; j<Y; j++) 
            {
                cout<<setw(5)<<first[i][j];
            }
            cout<<endl; 
    }
    cout<<endl;
    
    //выводим измененную вторую матрицу
    cout<<"New second array "<<endl;
    for (I=0; I<K; I++) 
    {       for (J=0; J<L; J++)
            {     
                cout<<setw(5)<<second[I][J];
            }
            cout<<endl; 
    }   
    cout<<endl;
    
 
 
    system("PAUSE");
}
 
Текущее время: 17:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru