Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 40

Заменить элементы массива кратные трём на сумму нечётных по значению элементов

05.11.2020, 17:48. Показов 4273. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаем функции, была задача создать динамический массив, и заменить элементы, кратные трём, на сумму нечётных по значению элементов. Всё заставляют делать через функции, я около часа возился над кодом, но в конце начали уже ошибки вылетать, а вывод был неправильным(сумма нечётных увеличивалась постепенно, и были вписаны разные значения). Может кто-то подсказать, в чём беда?

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
#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
void Make_array(int*, int);
int Suma_nechotnih(int*, int);
void Zamina_kratnih_3(int*, int);
int main() {
    srand(time(0));
    int i, n;
    cout << "Enter n:";
    cin >> n;
    int* array = new int;
    Make_array(array, n);
    cout << "\n\n";
    Zamina_kratnih_3(array, n);
    delete[] &array;
    cout << endl;
    system("pause");
    return 0;
}
void Make_array(int* array, int n) {
    int i;
    for (i = 0; i < n; i++) {
        array[i] = -50 + rand() % 201;
        cout << setw(4) << array[i] << "|";
    }
}
 
int Suma_nechotnih(int* array, int n) {
    int i, s=0;
    for (i = 0; i < n; i++) {
        if (array[i] % 2 != 0) { s += array[i]; }
    }
    return s;
}
 
void Zamina_kratnih_3(int* array, int n) {
    int i;
    for (i = 0; i < n; i++) {
        if (array[i] % 3 == 0) {
            array[i] = Suma_nechotnih(array, n);
        }
    }
    for (i = 0; i < n; i++) {
        cout << setw(4) << array[i] << "|";
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2020, 17:48
Ответы с готовыми решениями:

Заменить элементы, кратные трем, на сумму нечетных по значению элементов массива
Ввести целочисленный массив ,состоящий из 17 элементов .Заменить элементы кратные трем на сумму нечетных по значению элементов . Помогите я...

Заменить элементы массива, кратные трем, на сумму нечетных по значению элементов
Ввести целочисленный массив, состоящий из 17 элементов. Заменить элементы кратные трем на сумму нечетных по значению элементов.

Заменить элементы массива, кратные трем, на сумму нечетных по значению элементов
Ввести целочисленный массив состоящий из 17 элементов.Заменить элементы кратные трем на сумму нечетных по значению элементов

4
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.11.2020, 17:55
массив квадратный ? напишите оригинал условия задачи
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.11.2020, 17:58
Лучший ответ Сообщение было отмечено romcheg как решение

Решение

Строки с ошибками я отметил //!!!!!!!!!!!!!!
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
#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
void Make_array(int*, int);
int Suma_nechotnih(int*, int);
void Zamina_kratnih_3(int* arr, int n,int value); //!!!!!!!!!!!!!!
int main() {
    srand(time(0));
    int i, n;
    cout << "Enter n:";
    cin >> n;
    int* array = new int[n]; //!!!!!!!!!!!!!!
    Make_array(array, n);
    cout << "\n\n";
    Zamina_kratnih_3(array, n, Suma_nechotnih(array, n));//!!!!!!!!!!!!!!
    delete[] array;  //!!!!!!!!!!!!!!
    cout << endl;
    system("pause");
    return 0;
}
void Make_array(int* array, int n) {
    int i;
    for (i = 0; i < n; i++) {
        array[i] = -50 + rand() % 201;
        cout << setw(4) << array[i] << "|";
    }
}
 
int Suma_nechotnih(int* array, int n) {
    int i, s = 0;
    for (i = 0; i < n; i++) {
        if (array[i] % 2 != 0) { s += array[i]; }
    }
    return s;
}
 
void Zamina_kratnih_3(int* array, int n,int value) {  //!!!!!!!!!!!!!!
    int i;
    for (i = 0; i < n; i++) {
        if (array[i] % 3 == 0) {
            array[i] = value;  //!!!!!!!!!!!!!!
        }
    }
    for (i = 0; i < n; i++) {
        cout << setw(4) << array[i] << "|";
    }
}
1
0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 40
05.11.2020, 18:12  [ТС]
Создать динамический массив(одномерный), длина вводится с клавы. Заменить элементы, кратные трём, на сумму нечётных по значению элементов. Всё заставляют делать через функции(заполнение, обработка, вывод и т.п.), в main только вызывать эти функции. При чём функции объявлять(или как там) нужно выше main, а настраивать ниже. Ну, как в коде сделано в общем. Чёткого условия нет, т.к. дали задачу и добавили все эти пожелания

Добавлено через 5 минут
127| 107| 76| 22| 42| 49| -25| -33| 131| 127| 37| 7| -42| 20| 93| - стартовый массив
127| 107| 76| 22| 620| 49| -25| 620| 131| 127| 37| 7| 653| 20|1306| - после обработки, + ошибки(похоже утечка памяти)

Добавлено через 6 минут
Спасибо, помогло!!! пойду разбираться с этим всем
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.11.2020, 18:25
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int* Create(int n) // создание 
{
    int* a = new int [n];    
    return a;
}
 
void Random(int* a, int n) // заполнение 
{    
    for (int i = 0; i < n; i++)        
        a[i]=rand()%9+1;
}
 
void Print(int *a, int n) // вывод на экран
{
    for (int i = 0; i < n; i++)    
        cout << a[i] << " ";
    cout << "\n";    
}
 
int SumOdd(int* a, int n) 
{
    int sum_odd=0;
    for (int i = 0; i < n; i++) 
        if (a[i]%2) sum_odd+=a[i];    
return sum_odd;
}
 
void Replace(int* a, int n) 
{
    int s=SumOdd(a,n);
    for (int i = 0; i < n; i++) 
        if (a[i]%3==0) a[i]=s;
}
 
int main() 
{
    srand((int)time(0));
    int n, *a;
    cout << "n="; cin >> n;
    
    a = Create(n);
    
    Random(a,n);
    cout << "Array:\n";
    Print(a,n);
    cout << "sum odd = " << SumOdd(a,n) << "\n";
    Replace(a,n);
    cout << "Modified array:\n";
    Print(a,n);       
    delete[]a;
system("pause");
return 0;
}
функции вниз сами перенесите если это требуется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2020, 18:25
Помогаю со студенческими работами здесь

Ввести целочисленный массив, состоящий из 17 элементов. Заменить элементы кратные трем на сумму нечетных по значению эле
Ввести целочисленный массив, состоящий из 17 элементов. Заменить элементы кратные трем на сумму нечетных по значению элементов.

Все элементы массива, кратные трем, заменить на 0
Задачи VBA на одномерный массив, массив вводится в ячейки с помощью цикла For .. Next. Элементы массива задаются случайным образом в...

Заменить элементы массива, кратные трем, на противоположные по знаку
Задайте массив из n элементов. Замените элементы кратные трем, на противоположные по знаку. Выведите на экран исходный и измененный массивы.

Заменить все элементы массива, кратные 5 на сумму таких элементов
3.Элементы массива – целые числа в пределах от 4 до 23. Заменить все элементы массива кратные 5 на сумму таких элементов.

Все положительные элементы одномерного массива, кратные трем заменить на число 1
Все положительные элементы одномерного массива, кратные трем заменить на число 1. Обнулить все четные отрицательные элементы. Вывести...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru