Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 2
1

Правильно ли я делаю, используя везде return 0 в функциях double, которые работают с массивами?

17.11.2018, 13:42. Показов 524. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
задача:
в массиве а и b все числа до макс. значения заменить на 0.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
#include <iostream>
#include <string>
#include <string.h>
#include <iostream>
 
using namespace std; //потоковый ввод и вывод 
double mass_a[100], mass_b[100];
int n, m, o;
int maxn_a, maxn_b; //макс. значения
int max_a, max_b; //индексы максимальных значений
 
double processing(double mass_a[], double mass_b[]) {
    for (int i = 0; i < max_a; i++) {
        mass_a[i] = 0.5;
    }
 
    for (int j = 0; j < max_b; j++) {
        mass_b[j] = 0.5;
    }
 
    cout << "Результат для массива а: " << endl; //вывод массива а
    for (int i = 0; i < n; i++) {
        cout << mass_a[i] << endl;
    }
 
    cout << "Результат работы программы с массивом b: " << endl; //вывод массива b
    for (int j = 0; j < m; j++) {
        cout << mass_b[j] << endl;
    }
    return 0;
}
 
double index(double mass_a[], double mass_b[]) {
    maxn_a = mass_a[0];
    for (int i = 0; i < 100; i++) { //находим индекс макс. значения в массиве a
        if (mass_a[i] > maxn_a) {
            maxn_a = mass_a[i];
            max_a = i;
        }
    }
    maxn_b = mass_b[0];
    for (int j = 0; j < 100; j++) { //находим индекс макс. значения в массиве b
        if (mass_b[j] > maxn_b) {
            maxn_b = mass_b[j];
            max_b = j;
        }
    }
 
 
    cout << "Индекс максимального значения в массиве а - " << max_a << endl;
    cout << "Индекс максимального значения в массиве b - " << max_b << endl;
    return 0;
}
 
double input(int n, int m, double mass_a[], double mass_b[]) {
 
    cout << "Ввод массива а." << endl;
    o = 1; //о - переменная для понятной экранной формы; номера элементов
    for (int i = 0; i < n; i++) {
        cout << "Введите " << o << "-й элемент массива - ";
        cin >> mass_a[i];
        o++;
    }
    o = 1;
    cout << "Ввод массива b." << endl;
    for (int j = 0; j < m; j++) {
        cout << "Введите " << o << "-й элемент массива - ";
        cin >> mass_b[j];
        o++;
    }
    return 0;
}
 
int main()
{
    setlocale(0, "Russian");
    cout << "Введите размерность массива а: ";
    cin >> n;
    cout << "Введите размерность массива b: ";
    cin >> m;
    input(n, m, mass_a, mass_b); //ввод данных массивов
    index(mass_a, mass_b); //поиск максимального значения
    processing(mass_a, mass_b); //замена элементов массивов на 0.5 по условию задачи и вывод
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2018, 13:42
Ответы с готовыми решениями:

написать > 5 методов операций с массивами используя различные комбинации - ссылки, return, out аргумент, переменное числ
написать &gt; 5 методов операций с массивами используя различные комбинации - ссылки, return, out...

Написать > 5 методов операций с массивами используя различные комбинации - ссылки, return, out аргумент, переменное числ
написать &gt; 5 методов операций с массивами используя различные комбинации - ссылки, return, out...

Односвязный список - объясните, как работают return 0 и return 1
проверьте, пжлса, по комментариям правильно ли я поняла принцип работы программы. Объясните, как...

return в функциях
Приветствую! Все продолжаю учить котлин. Встала проблема на последнем задании по функциям. Прошу...

4
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
17.11.2018, 13:53 2
Лучше int использовать.

Добавлено через 2 минуты
Цитата Сообщение от ayaturn Посмотреть сообщение
C++
1
double processing(double mass_a[], double mass_b[])
- т.е. вот это, вот так:
C++
1
int processing(double mass_a[], int n1, double mass_b[], int n2)
- я еще добавил число элементов в массиве, чтобы функция знала, сколько там элементов.
0
0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 2
17.11.2018, 14:31  [ТС] 3
в массиве должны быть действительные числа, разве int подходит?
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
17.11.2018, 21:31 4
А не лучше вообще использовать void и без return?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
17.11.2018, 22:28 5
ayaturn, return 0 это мелочи по сравнению с тем, что судя по коду Вы так и не разобрались зачем вообще нужны функции. одно из главных назначений - убрать дублирование одинаковых участков кода. кроме того, если размерность задаётся с клавиатуры, используются динамические массивы.
вариант кода для Вашей задачи (заменит элементы до первого max):
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
#include <iostream>
using namespace std;
 
void Set (double *x, int N) 
{ 
    for (int i = 0; i < N; i++)
      cin >>x[i];
} 
 
int IndexMax (double *x, int N)
{
    int imax=0;
    for (int i = 0; i < N; i++)
    if (i==0 || x[i]>x[imax]) imax=i;
    return imax;
} 
 
void Replace (double *x, int imax)
{
    for (int i = 0; i < imax; i++)
    x[i]=0.5;
} 
 
void Print (double *x, int N) 
{ 
    for (int i = 0; i < N; i++)
      cout <<x[i]<<" ";
      cout <<endl;
} 
 
int main()
{
    int n, m;
    cout <<"Size a: "; cin >> n;
    
    double*a = new double[n];
    
    cout <<"Enter "<<n<<" elements matrix a:\n";
    Set (a, n);
    cout <<"New matrix a:\n";    
    Replace (a, IndexMax (a, n));
    Print(a, n);
 
    cout <<"\nSize b: "; cin >> m;
 
    double*b = new double[m];
 
    cout <<"Enter "<<m<<" elements matrix b:\n";
    Set (b, m);
    
    cout <<"New matrix b:\n";   
    Replace (b, IndexMax (b, m));
    Print(b, m);
    delete[]a;
    delete[]b;
system("pause");
return 0;
}
0
17.11.2018, 22:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2018, 22:28
Помогаю со студенческими работами здесь

Почему не создается эта таблица, хотя по синтаксису все правильно, таблицы на которые ссылается она работают
Сообщение 1769, уровень 16, состояние 1, строка 1 Внешний ключ &quot;Kod_sotrud&quot; указывает на...

Как правильно конвертировать из object (который может быть Double) в double
Добрый день, возможно задача тривиальная, но меня как новичка она вводит в какой-то ступор....

Правильно ли я реализовываю добавляемые пользователем поля в менеджер контактов. Код есть. Нужен совет, если не правильно делаю
Как я хочу это дело осуществить. Я в класс Contact добавлю какое-то кол-во свойств (BirthDay,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru