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

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

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

Распределить код на функции - C++

03.04.2016, 23:10. Просмотров 184. Ответов 6
Метки нет (Все метки)

В общем,такая проблема,нужно создать перегруженную функцию,для кода,но когда я начинаю делать это,то появляется масса ошибок,я не знаю почему. Код написан и отлично работает,единственное,что осталост,это разсегментировать его на ПЕРЕГРУЖЕННЫЕ функции,пожалуйста выручите меня и если можно , то объясните как вы
это сделали,спасибо зараннее

КОД :
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
#include <iostream>
#include <ctime>
using namespace std;
 
void main()
{
    srand(time(NULL));
    const int SIZE = 6;
    int myArray[SIZE][SIZE] = {};
    int tmp;
    for (int i = 0; i < SIZE; i++)
    {
        for (int j = 0; j < SIZE; j++)
        {
            myArray[i][j] = (rand()% 100)/10.0;
            cout<<myArray[i][j]<<' ';
        }
        cout << "\n";
    }
    
    for (int i = 0; i<SIZE; i++)
    {
        for (int j = 0; j<SIZE; j++)
        {
            for (int k = j; k<SIZE; k++)
            {
                if (myArray[i][j]>myArray[i][k])
                {
                    tmp = myArray[i][j];
                    myArray[i][j] = myArray[i][k];
                    myArray[i][k] = tmp;
                }
            }
        }
        cout << "\n";
    }
    cout << "Sorted matrix: " << endl;
 
    cout << "\n";
    for (int i = 0; i<SIZE; i++)
    {
        for (int j = 0; j<SIZE; j++)
        {
            cout << myArray[i][j]<<" ";
        }
        cout << endl;
    }
 
    int min = myArray[0][0];
    for (int i2 = 0; i2 < SIZE; i2++)
    {
 
        if (myArray[i2][i2]<min)
        {
            min = myArray[i2][i2];
        }
 
    }
    cout << "\nThe minimum number is: " << min << endl;
 
    int max = myArray[0][0];
    for (int i2 = 0; i2 < SIZE; i2++)
    {
 
        if (myArray[i2][i2]>max)
        {
            max = myArray[i2][i2];
        }
 
    }
    cout << "\nThe maximum number is: " << max << endl;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2016, 23:10     Распределить код на функции
Посмотрите здесь:

Прошу помочь распределить время на изучение C++ C++
C++ массив (Отсортировать в порядке возрастания, распределить динамически память)
C++ Память распределить динамически
C++ Распределить и распечатать значения из файла
C++ Перевести код из функции в шаблоны функции
Распределить числа в порядке убывания C++
C++ Разбить код на функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stitch Igorek
45 / 45 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
03.04.2016, 23:24     Распределить код на функции #2
я чего то не понял, какую функцию ты хочешь перегрузить, у тебя весь код в мэйне написан.
Lazariev_V
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 46
04.04.2016, 01:02  [ТС]     Распределить код на функции #3
Да,в том-то и дело,в мейне все работает,но когда я пытаюсь сделать раздельные функции , то ничего не работает
Вот задание
Написать перегруженные функции (int, double, char) для выполнения следующих задач:
• Инициализация квадратной матрицы;
• Вывод матрицы на экран;
• Определение максимального и минимального элемента на главной диагонали матрицы;
• Сортировка элементов по возрастанию отдельно для каждой строки матрицы.
Stitch Igorek
45 / 45 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
04.04.2016, 20:23     Распределить код на функции #4
у тебя не получается, потому что у тебя двухмерный массив, его никак в функцию передать нельзя, попробуй использовать либо одномерный, либо массив объектов структуры(а в каждом объекте структуры может быть массив), и уже передавать в функцию массив объектов структур, но одномерный.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
struct Arr
{
     int *a;
};
 
int main()
{
     Arr b[10];
     b[0].a = new int[10];
}
писал прямо тут, так что не ругайтесь если где то не так что то, но смысл такой.

Добавлено через 1 минуту
в этом случае ты запросто сможешь передать в функцию массив a[] и работать с ним как хочешь

Добавлено через 25 секунд
точнее массив b[]
djair
1 / 2 / 2
Регистрация: 22.09.2015
Сообщений: 12
05.04.2016, 03:13     Распределить код на функции #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring> 
#include <conio.h>
#include <time.h>
#include <iomanip>
using namespace std;
 
void Init(int arr[][6], int size);
void Init(double arr[][6], int size);
void Init(char arr[][6], int size);
 
int main() {
    srand((unsigned)time(NULL));
 
    const int SIZE = 6;
 
    int arr_int[SIZE][SIZE];
    double arr_double[SIZE][SIZE];
    char arr_char[SIZE][SIZE];
 
    Init(arr_int, SIZE);
    Init(arr_double, SIZE);
    Init(arr_char, SIZE);
 
    _getch();
    return 0;
}
void Init(int arr[][6], int size) {
    cout << endl << "\ttype int:" << endl << endl;
    int tmp;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) 
            arr[i][j] = (rand() % 100) / 10;
 
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << arr[i][j] << ' ';
        cout << endl;
    }
    /**********/
    cout << endl;
    cout << "Sorted matrix: " << endl << endl;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) 
            for (int k = j; k < size; k++) 
                if (arr[i][j] > arr[i][k]) {
                    tmp = arr[i][j];
                    arr[i][j] = arr[i][k];
                    arr[i][k] = tmp;
                }
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << arr[i][j] << ' ';
        cout << endl;
    }
    cout << endl;
    /**********/
    int min = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (arr[i2][i2] < min) min = arr[i2][i2];
    cout << endl << "The minimum number is: " << min << endl;
    /**********/
    int max = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (arr[i2][i2]>max) max = arr[i2][i2];
    cout << endl << "The maximum number is: " << max << endl;
    /**********/
}
void Init(double arr[][6], int size) {
    double tmp;
    cout << endl << "\ttype doudle:" << endl << endl;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) 
            arr[i][j] = (rand() % 100) / 10.0;
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << setw(5) << arr[i][j];
        cout << endl;
    }
    cout << endl;
    /**********/
    cout << "Sorted matrix: " << endl << endl;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) 
            for (int k = j; k < size; k++) 
                if (arr[i][j] > arr[i][k]) {
                    tmp = arr[i][j];
                    arr[i][j] = arr[i][k];
                    arr[i][k] = tmp;
                }
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << setw(5) << arr[i][j];
        cout << endl;
    }
    /**********/
    double min = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (arr[i2][i2] < min) min = arr[i2][i2];
    cout << endl << "The minimum number is: " << min << endl;
    /**********/
    double max = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (arr[i2][i2]>max) max = arr[i2][i2];
    cout << endl << "The maximum number is: " << max << endl;
    /**********/
}
void Init(char arr[][6], int size) {
    cout << endl << "\ttype char:" << endl << endl;
    int tmp;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) {
            tmp = (rand() % 100) / 10;
            _itoa(tmp, &arr[i][j], 10);
        }
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << arr[i][j] << ' ';
        cout << endl;
    }
    cout << endl;
    /**********/
    cout << "Sorted matrix: " << endl << endl;
    for (int i = 0; i < size; i++) 
        for (int j = 0; j < size; j++) 
            for (int k = j; k < size; k++) 
                if (strcmp(&arr[i][j], &arr[i][k]) == 1) {
                    tmp = arr[i][j];
                    arr[i][j] = arr[i][k];
                    arr[i][k] = tmp;
                }
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) 
            cout << arr[i][j] << ' ';
        cout << endl;
    }
    /**********/
    char min = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (strcmp(&arr[i2][i2], &min) == -1) min = arr[i2][i2];
    cout << endl << "The minimum number is: " << min << endl;
    /**********/
    char max = arr[0][0];
    for (int i2 = 0; i2 < size; i2++)
        if (strcmp(&arr[i2][i2], &min) == 1) max = arr[i2][i2];
    cout << endl << "The maximum number is: " << max << endl;
    /**********/
}
если будет что-то не понятное спрашивай
avgoor
840 / 482 / 107
Регистрация: 05.12.2015
Сообщений: 1,375
05.04.2016, 11:58     Распределить код на функции #6
Цитата Сообщение от Stitch Igorek Посмотреть сообщение
у тебя не получается, потому что у тебя двухмерный массив, его никак в функцию передать нельзя
Кто вам сказал такой бред?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2016, 18:51     Распределить код на функции
Еще ссылки по теме:

Объясните код функции C++
C++ Как правильно распределить динамическую память?
Добавить в код любые пользовательские функции (лучше всего - функции ввода/вывода) C++
C++ Распределить участников по местам
C++ Матрицы: распределить участников турнира по убыванию набранных очков

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

Или воспользуйтесь поиском по форуму:
Stitch Igorek
45 / 45 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
05.04.2016, 18:51     Распределить код на функции #7
Цитата Сообщение от avgoor Посмотреть сообщение
Кто вам сказал такой бред?
профессор Google
Yandex
Объявления
05.04.2016, 18:51     Распределить код на функции
Ответ Создать тему
Опции темы

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