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

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

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

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

03.04.2016, 23:10. Просмотров 207. Ответов 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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2016, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Распределить код на функции (C++):

Добавить в код любые пользовательские функции (лучше всего - функции ввода/вывода) - C++
Ребят, прошу вас помочь добавить любые две функции, лучше всего если ввод и вывод, но например и за два void input буду очень благодарен...

Перевести код из функции в шаблоны функции - C++
Короче, у меня есть прога написанная с помощью функций, теперь мне нужно написать её с помощью шаблонов функции... #include...

Распределить участников по местам - C++
Забиваются фамилии участников и оценки 8 судей. Необходимо вывести таблицу, в которой участники распределены по местам. Не получается...

Память распределить динамически - C++
Задали такую задачу :память матрицы распределить динамически .Найти среднее арифметическое области заштрихованной области 1 0 0 0 0 1...

Распределить и распечатать значения из файла - C++
Всем привет! Имеется файл input.txt. Содержание этого файла такое: ...

Распределить элементы очереди по условию - C++
Нужно разделить очередь на две, в одну значения большие или равные среднему,во вторую меньшие,при этом не создавая новую(задание такое).Как...

6
Stitch Igorek
47 / 47 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
03.04.2016, 23:24 #2
я чего то не понял, какую функцию ты хочешь перегрузить, у тебя весь код в мэйне написан.
0
Lazariev_V
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
04.04.2016, 01:02  [ТС] #3
Да,в том-то и дело,в мейне все работает,но когда я пытаюсь сделать раздельные функции , то ничего не работает
Вот задание
Написать перегруженные функции (int, double, char) для выполнения следующих задач:
• Инициализация квадратной матрицы;
• Вывод матрицы на экран;
• Определение максимального и минимального элемента на главной диагонали матрицы;
• Сортировка элементов по возрастанию отдельно для каждой строки матрицы.
0
Stitch Igorek
47 / 47 / 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[]
0
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;
    /**********/
}
если будет что-то не понятное спрашивай
0
avgoor
915 / 550 / 119
Регистрация: 05.12.2015
Сообщений: 1,531
05.04.2016, 11:58 #6
Цитата Сообщение от Stitch Igorek Посмотреть сообщение
у тебя не получается, потому что у тебя двухмерный массив, его никак в функцию передать нельзя
Кто вам сказал такой бред?
0
Stitch Igorek
47 / 47 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
05.04.2016, 18:51 #7
Цитата Сообщение от avgoor Посмотреть сообщение
Кто вам сказал такой бред?
профессор Google
0
05.04.2016, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2016, 18:51
Привет! Вот еще темы с ответами:

Распределить числа в порядке убывания - C++
Даны две целочисленные переменные х и y. Составить фрагмент про-граммы, после выполнения которого значения этих переменных распределяются в...

Как правильно распределить динамическую память? - C++
При запуске программы и вводе строки, в одном случае программа выполняется, а в другом выдает, что прекращена работа программы. Понимаю,...

Прошу помочь распределить время на изучение C++ - C++
так как являюсь тем кто любит поиграть игры, и имею больошое желаение учить с++ но немагу розкинуть вермя учёбы...вот я прошу Вас помочь...

Как распределить рекурсивную программу перебора последовательностей ? - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;dos.h&gt; using namespace std; const int m = 2, n = 2; //m = число цифр, n =...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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