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

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

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

Элементы массивов с четными номеpами до максимального заменить на заданное значение - C++

02.02.2012, 23:50. Просмотров 725. Ответов 8
Метки нет (Все метки)

Даны целые массивы А[10], B[10] и значения R и F. Каждый массив пpеобpазовать по пpавилу: компоненты с четными номеpами, пpедшествующие наибольшему компоненту массива, заменить на значение R (для массива A) и значение F (для массива B). Считать, что в каждом массиве наибольший компонент единственный.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 23:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементы массивов с четными номеpами до максимального заменить на заданное значение (C++):

Сформировать массив, записав в него элементы с четными индексами двух массивов. - C++
Из массивов A и B сформировать массив C, записав в него элементы массивов A и B с четными индексами. Вычислить среднее арифметическое...

Элементы массива с четными номерами заменить на 100 - C++
Елементы массива с четными намерами заменить на 100

В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести...

В каждом из заданных массивов найти наибольшее значение, и разделить на него все элементы массивов - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и разделить на него все элементы массивов. На печать вывести...

Дан массив. Все элементы массива с четными номерами заменить на их абсолютную величину - C++
Дан массив вещественных чисел. Все элементы массива с четными номерами заменить на их абсолютную величину.

Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать...

8
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
03.02.2012, 00:17 #2
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
#include <iostream>
#include <iomanip>
 
int indexOfMax(const int [], const int, int = 0, int = 0);
void printArray(const int [], const int, int = 0);
 
int main()
{
    const int arraySize = 10;
    int a[arraySize] = {1,2,3,444,5,6,7,8,9,10};
    int b[arraySize] = {1,2,3,4,555,6,7,8,9,10};
    int r = 555;
    int f = 444;
 
    for(int i = indexOfMax(a,arraySize)+1; i < arraySize; i++)
        if(i % 2 == 0)
            a[i] = r;
 
    for(int i = indexOfMax(b,arraySize)+1; i < arraySize; i++)
        if(i % 2 == 0)
            b[i] = f;
 
 
    printArray(a,arraySize);
    printArray(b,arraySize);
 
    return 0;
}
 
 
int indexOfMax(const int m[], const int arraySize, int index, int step)
{
    if(step == arraySize)
        return index;
    else
        return indexOfMax(m,arraySize,m[step]>m[index]?step:index,step+1);
}
 
void printArray(const int m[], const int arraySize, int step)
{
    if(step < arraySize)
    {
        std::cout << std::setw(5) << m[step];
 
        printArray(m,arraySize,step+1);
    }
    else
        std::cout << std::endl;
}
0
Serejke_qq
03.02.2012, 00:20
  #3

Не по теме:

Цитата Сообщение от R136a1 Посмотреть сообщение
lshkn@lshkn-desktop:~/C++$ cat 1.cc
ах, успел заметить ^_^

0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
03.02.2012, 00:23 #4
Цитата Сообщение от Serejke_qq Посмотреть сообщение

Не по теме:


ах, успел заметить ^_^

Не по теме:

упс

0
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.02.2012, 00:32 #5
R136a1, без обид - лучше еще раз перечитайте задание: ключевое слово - пpедшествующие
1
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
03.02.2012, 00:41 #6
valeriikozlov, да какие обиды невнимательно прочитал
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 <iomanip>
 
int indexOfMax(const int [], const int, int = 0, int = 0);
void printArray(const int [], const int, int = 0);
 
int main()
{
    const int arraySize = 10;
    int a[arraySize] = {1,2,3,444,5,6,7,8,9,10};
    int b[arraySize] = {1,2,3,4,555,6,7,8,9,10};
    int r = 555;
    int f = 444;
 
    for(int i = 1; i < indexOfMax(a,arraySize); i++)
        if(i % 2 == 0)
            a[i] = r;
 
    for(int i = 1; i < indexOfMax(b,arraySize); i++)
        if(i % 2 == 0)
            b[i] = f;
 
    printArray(a,arraySize);
    printArray(b,arraySize);
 
    return 0;
}
 
 
int indexOfMax(const int m[], const int arraySize, int index, int step)
{
    if(step == arraySize)
        return index;
    else
        return indexOfMax(m,arraySize,m[step]>m[index]?step:index,step+1);
}
 
void printArray(const int m[], const int arraySize, int step)
{
    if(step < arraySize)
    {
        std::cout << std::setw(5) << m[step];
 
        printArray(m,arraySize,step+1);
    }
    else
        std::cout << std::endl;
}
0
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.02.2012, 00:44 #7
R136a1, Вы раньше на Паскале писали? Зачем начинаете i с единички в этих циклах:

Цитата Сообщение от R136a1 Посмотреть сообщение
for(int i = 1; i < indexOfMax(a,arraySize); i++)
?
1
Vergil111
31 / 31 / 6
Регистрация: 30.11.2010
Сообщений: 81
03.02.2012, 01:12 #8
Я бы сделал как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int r;
    vector<int> a((istream_iterator<int>(cin)), istream_iterator<int>());
    cin.clear();
    cout << "Enter r: ";
    cin >> r;
    vector<int>::iterator it = a.begin();
    replace_if(a.begin(), max_element(a.begin(), a.end()), [&it, &a](const int& x)->bool{bool res = !((it-a.begin())&1); it++; return res;}, r);
    copy(a.begin(), a.end(), ostream_iterator<int>(cout, " "));
    return 0;
}
Для массива b напишите сами
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
03.02.2012, 01:25 #9
valeriikozlov, и снова спасибо за замечание 0 за нечетное принял
Так конечно должно быть
C++
1
2
3
4
5
6
7
        for(int i = 0; i < indexOfMax(a,arraySize); i++)
                if(i % 2 == 0)
                        a[i] = r;
 
        for(int i = 0; i < indexOfMax(b,arraySize); i++)
                if(i % 2 == 0)
                        b[i] = f;
0
03.02.2012, 01:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2012, 01:25
Привет! Вот еще темы с ответами:

Дан массив вещественных чисел.Все элементы массива с четными номера заменить на их абсолютную величину. - C++
Дан массив вещественных чисел.Все элементы массива с четными номера заменить на их абсолютную величину. #include&lt;stdio.h&gt; ...

Заменить все отрицательные элементы массива на значения максимального - C++
Дан целочисленный массив. Заменить все отрицательные элементы на значения максимального

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

Заменить нулями элементы матрицы, расположенные слева и сверху от максимального - C++
Дан массив х: array of integer, где 0 &lt; n, m &lt; 50. Найти в нем максимальный элемент МАХ и заменить нулями элементы массива, расположенные...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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