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

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

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

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

18.07.2016, 11:32. Просмотров 270. Ответов 7
Метки нет (Все метки)

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 раз "Массив ="
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 11:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму всех нечетных элементов массива и заменить все четные на эту сумму (C++):

Найти сумму всех элементов массива, имеющих четные индексы - C++
Найти сумму всех элементов массива, имеющих четные индексы.

Найти сумму элементов главной диагонали и от каждого элемента массива отнять эту сумму - C++
Всем доброго времени суток. Прошу помочь новичку решить двумерный массив. Для Borland C++ 3.1 Дан двумерный массив размером m на n. Найти...

Найти сумму всех элементов матрицы и заменить ею все диагональные элементы - C++
Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.

Вернуть сумму кодов всех элементов массива и заменить все вхождения символа «#» на букву А - C++
вот задание: Написать функцию, которая для заданного в качестве пара метра массива типа char возвращает сумму кодов всех его элементов и...

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива. - C++
Помогите написать код на с++ Программа должна иметь пользовательское меню, которое позволяет: Заполнить массив и при этом вывести его...

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива. - C++
Составьте программу на языке С++ для решения одного из вариантов заданий. Программа должна иметь пользовательское меню, которое позволяет:...

7
casper007
67 / 67 / 22
Регистрация: 12.12.2013
Сообщений: 400
18.07.2016, 11:46 #2
Цитата Сообщение от katafot Посмотреть сообщение
И как вывести массив не используя цикл, а то выдает 7 раз "Массив ="
выведи слово "Массив" перед циклом.

Добавлено через 6 минут
найти сумму всех непарных элементов
вы ищете все четные и нечетные числа. А надо найти все одиночные элементы, и на их сумму заменить все парные.
0
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 47
18.07.2016, 11:53  [ТС] #3
А в программе можно написать, я пытался, но у меня ничего не получается
0
nstwf
87 / 77 / 32
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 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;
}
1
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 47
18.07.2016, 12:07  [ТС] #5
Спасибо теперь выводит, но массив неправильный, оно не то выводит...
Ошибка где-то в функции..
0
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 47
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
0
Тамика
Котовчанин
911 / 454 / 144
Регистрация: 16.02.2010
Сообщений: 3,113
Записей в блоге: 27
18.07.2016, 12:57 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
katafot, исходя из задачи, Вам нужно найти сумму ВСЕХ непарных элементов. А Вы что делаете в функции?
Вы заменяете парные элементы на текущую сумму, хотя цикл ещё на закончен.
Вы должны прогнать цикл до конца, и найти полную сумму. Чтобы не гонять цикл два раза - можете запоминать индексы парных чисел, а потом просто подменить их на сумму.
1
katafot
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 47
18.07.2016, 13:00  [ТС] #8
Спасибо, все ипсравил
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 13:00
Привет! Вот еще темы с ответами:

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

Найти сумму всех элементов матрицы и заменить ею все диагональные элементы этой матрицы - C++
Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.

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

В целочисленном одномерном массиве найти сумму всех нечетных элементов - C++
Помогите! Помогите! Хулиганы меня отчисляют!:cry:


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
18.07.2016, 13:00
Ответ Создать тему
Опции темы

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