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

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

Восстановить пароль Регистрация
 
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
24.12.2012, 10:41     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс #1
Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс. Исполь-зуя эту функцию, определите, в каком из двух заданных массивов А и В больше изме-ненных элементов, а также распечатайте полученные массивы (если число изменен-ных одинаково, выведите соответствующее сообщение). НАПИШИТЕ ПРОГУ ПЛЗ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 10:41     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс
Посмотрите здесь:

Одномерный массив. Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента. C++
C++ 1. Дан одномерный массив целых чисел. Найти произведение элементов массива, расположенных после минимального по модулю элемента
Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы, совпадающие с его C++
C++ Задачка на массив. Заменить все его элементы с отрицательным значением на значение минимального положительного элемента
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 12:16     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс #2
подсказка
C++
1
2
3
4
5
 for(int i = 0; i < N; ++i)  
    {       
        if (mas[i] > 0)  
            mas[i] += i;
    }
дальше разберёшься?
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
24.12.2012, 12:18  [ТС]     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс #3
напишите полностью решение пожалуйста!
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 12:49     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс #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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>     // ввод вывод 
#include <stdlib.h>     // получение случайных чисел
#include <time.h>       // делаем случайные числа с помощью текущего времени
#define N 10            // задаем размер массива (можно изменить)
 
using namespace std;
 
int change_mas(int arr[])
{
    int count = 0;
    for(int i = 0; i < N; ++i)  
    {       
        if (arr[i] > 0)
        {
            arr[i] += i;
            count++;
        }
    }
    return count;
}
 
void init_mas(int arr[])
{
    for(int i = 0; i < N; ++i)  
    {       
        arr[i] = rand()%20 - 10;
    }
}
 
void show_mas(int arr[])
{
    for(int i = 0; i < N; ++i)  
    {       
        cout << arr[i] << "\t";
    }
    cout << endl;
}
 
 
int main() 
{
    srand(static_cast<unsigned>(time(0)));
    int mas1[N];         // инициализируем массив   
    int mas2[N];  
    int m1, m2;
    init_mas(mas1);
    init_mas(mas2);
 
    show_mas(mas1);
    show_mas(mas2);
 
    m1 = change_mas(mas1);
    m2 = change_mas(mas2);
 
    show_mas(mas1);
    show_mas(mas2);
 
    if (m1 > m2)
        cout << "number of changed elements more in first array\n";
    else if (m1 < m2)
        cout << "number of changed elements more in second array\n";
    else if (m1 == m2)
        cout << "number of changed elements is equal in both arrays\n";
 
    system("pause");
}
Добавлено через 4 минуты
P.S. ну если быть слишком педантичным, то моя программа учитывает нулевой элемент, когда считает число изменённых элементов. Хотя прибавлением к числу его индекса (0) число не изменишь. И если твой препод окажется хитрым человеком с большим чувством собственной важности, то наверняка он придерётся к этому. Поэтому в программе change_mas() можешь начинать цикл не с 0, а с 1.
Yandex
Объявления
24.12.2012, 12:49     Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс
Ответ Создать тему
Опции темы

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