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

Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму - C++

Восстановить пароль Регистрация
 
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 41
18.07.2016, 11:32     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #1
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
#include <iostream>
using namespace std;
void Sum(int a[], int n, int& sum)
{
    for (int i = 0; i < n; i++)
    {
        if (a[i] % 2 != 0)
            sum += a[i];
        if (a[i] % 2 == 0)
        {
            int temp = a[i];
            a[i] = sum;
            temp = sum;
        }
    }
}
int main()
{
    int a[7], sum = 0;
    cout << "Vvedite massiv" << endl;
    for (int i = 0; i < 7; i++) cin >> a[i];
    Sum(a, 7, sum);
    cout << "Summa=" << sum << endl;
    for (int i = 0; i < 7; i++)
        cout << "Massiv=" << a[i] << endl;
    return 0;
}
Выдает неправильный массив, хотя сумма правильная

Добавлено через 4 минуты
И как вывести массив не используя цикл, а то выдает 7 раз "Массив ="
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 11:32     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму
Посмотрите здесь:

C++ Вернуть сумму кодов всех элементов массива и заменить все вхождения символа «#» на букву А
Найти сумму нечетных элементов массива C++
Дан массив из 10 элементов (заполнить вручную). Найти все четные элементы массива находящиеся на нечетных местах C++
C++ Найти сумму всех элементов массива, имеющих четные индексы
В целочисленном одномерном массиве найти сумму всех нечетных элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
18.07.2016, 11:46     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #2
Цитата Сообщение от katafot Посмотреть сообщение
И как вывести массив не используя цикл, а то выдает 7 раз "Массив ="
выведи слово "Массив" перед циклом.

Добавлено через 6 минут
найти сумму всех непарных элементов
вы ищете все четные и нечетные числа. А надо найти все одиночные элементы, и на их сумму заменить все парные.
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 41
18.07.2016, 11:53  [ТС]     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #3
А в программе можно написать, я пытался, но у меня ничего не получается
nstwf
86 / 76 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
18.07.2016, 11:59     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #4
Цитата Сообщение от katafot Посмотреть сообщение
А в программе можно написать, я пытался, но у меня ничего не получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    int a[7], sum = 0;
    cout << "Vvedite massiv" << endl;
    for (int i = 0; i < 7; i++) cin >> a[i];
    Sum(a, 7, sum);
    cout << "Summa=" << sum << endl;
    cout << "Massiv=" << endl;
    for (int i = 0; i < 7; i++)
       cout << a[i] << endl;
    return 0;
}
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 41
18.07.2016, 12:07  [ТС]     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #5
Спасибо теперь выводит, но массив неправильный, оно не то выводит...
Ошибка где-то в функции..
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 41
18.07.2016, 12:49  [ТС]     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #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
#include <iostream>
using namespace std;
void Sum(int a[], int n, int& sum)
{
    for (int i = 0; i < n; i++)
    {
        if (a[i] % 2 != 0)
            sum += a[i];
       else
        {
            int temp = a[i];
            a[i] = sum;
            temp = sum;
        }
    }
}
int main()
{
    int a[7], sum = 0;
    cout << "Vvedite massiv" << endl;
    for (int i = 0; i < 7; i++) cin >> a[i];
    Sum(a, 7, sum);
    cout << "Summa=" << sum << endl;
    cout << "Massiv=" << endl;
    for (int i = 0; i < 7; i++)
       cout << a[i] << endl;
    return 0;
}
Функция правильно считает сумму, но вот массив выходит неправильный,
Я ввожу от 1 до 7 сумму выводит "16"
Массив должен быть таковым:
1 16 3 16 5 16 7
Вместо этого выводит:
1 1 3 4 5 9 7
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
18.07.2016, 12:57     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
katafot, исходя из задачи, Вам нужно найти сумму ВСЕХ непарных элементов. А Вы что делаете в функции?
Вы заменяете парные элементы на текущую сумму, хотя цикл ещё на закончен.
Вы должны прогнать цикл до конца, и найти полную сумму. Чтобы не гонять цикл два раза - можете запоминать индексы парных чисел, а потом просто подменить их на сумму.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 13:00     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму
Еще ссылки по теме:

Найти сумму нечетных элементов массива C++
Заменить элементы, кратные трем, на сумму нечетных по значению элементов массива C++
C++ Заменить все элементы матрицы, меньшие суммы элементов первой строки, на эту сумму

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

Или воспользуйтесь поиском по форуму:
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 41
18.07.2016, 13:00  [ТС]     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму #8
Спасибо, все ипсравил
Yandex
Объявления
18.07.2016, 13:00     Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму
Ответ Создать тему
Опции темы

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