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

Все четные элементы увеличить на 1, и посчитать их сумму - C++

Восстановить пароль Регистрация
 
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
14.05.2012, 09:23     Все четные элементы увеличить на 1, и посчитать их сумму #1
1. Одномерный масив А[n]. Все четные элементы увеличить на 1, и посчитать их суму.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 09:23     Все четные элементы увеличить на 1, и посчитать их сумму
Посмотрите здесь:

C++ Дан массив целых чисел из 10 элементов.Все элементы кратные 10 заменить 0;Все нечетные элементы удвоить, а четные уменьшить на 2;
C++ Создать два массива, которые будут содержать: все четные элементы двух массивов; все нечетные элементы двух массивов
Все элементы последней строки матрицы увеличить на соответствующие элементы предпоследней C++
C++ Инкрементировать (увеличить на единицу) все четные цифры
C++ Массивы: все элементы, кратные 10, заменить 0, все нечетные элементы удвоить, а четные уменьшить в 2 раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
14.05.2012, 11:19     Все четные элементы увеличить на 1, и посчитать их сумму #2
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
28
29
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <ctime>
 
int main()
{
    srand(time(NULL));
    std::vector<int> vec(15);
    std::generate(vec.begin(), vec.end(), []() {
       return rand() % 20; 
    }); 
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    int sum = 0;
    std::transform(vec.begin(), vec.end(), vec.begin(), [&sum](int num) 
    {
       if (!(num & 1)) 
       {
          sum += ++num;
          return num;  
       } 
       return num; 
    }); 
    std::cout << std::endl;  
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\nSum: " << sum << std::endl;
    return 0; 
}
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
14.05.2012, 16:55  [ТС]     Все четные элементы увеличить на 1, и посчитать их сумму #3
Спасибо, тока она не работает, но я теперь хоть понял как делать 1-е Думаю сам доделаю
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
14.05.2012, 17:50     Все четные элементы увеличить на 1, и посчитать их сумму #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
#include "iostream"
#include "ctime" 
 
using namespace std;
 
int main()
{
    srand(time(0));
    const int n = 10;
    int sum = 0;
    int *mas = new int [n];
    
    for(int i = 0; i < n; i++)
    {
        cout << (mas[i] = 5 - rand() % 10) << " ";
        if(mas[i] % 2 == 0)
        {
            mas[i] = mas[i] + 1;
            sum += mas[i];
        }
    }
 
    cout << endl << sum << endl;
 
    system("pause >> null");
    return 0;
}
Yandex
Объявления
14.05.2012, 17:50     Все четные элементы увеличить на 1, и посчитать их сумму
Ответ Создать тему
Опции темы

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