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

Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг) - C++

Восстановить пароль Регистрация
 
Dron16
3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
01.02.2013, 22:17     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг) #1
Дан массив A[N]. Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг влево на k позиций, где k – число отрицательных элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 22:17     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
Посмотрите здесь:

C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
C++ Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо
C++ Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
C++ Массив: Все отрицательные элементы увеличить на значение максимального элемента
C++ Уменьшить все четные элементы матрицы на значение максимального элемента
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента C++
Записать все положительные и отрицательные элементы двумерного массива в одномерные массивы C++
C++ Заменить все отрицательные элементы массива на значение минимального элемента
C++ Заменить все отрицательные элементы массива на значения максимального
C++ Одномерные массивы, удалить все повторяющиеся элементы, оставив только первые вхождения
C++ Увеличить все элементы матрицы на значение первого элемента найденной строки
В однородном массиве все отрицательные элементы увеличить на 2, а все положительные заменить на 1 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Glimpse
 Аватар для Glimpse
9 / 9 / 2
Регистрация: 21.01.2013
Сообщений: 20
02.02.2013, 00:00     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг) #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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <bitset>
 
using namespace std;
 
void printArr(int *a, int &n)
{
    for(int i = 0; i < n; i++)
        cout << a[i] << ' ';
}
 
void printBinaryArr(int *a, int n)
{
    for(int i = 0; i < n; i++)
        cout << bitset<8>(a[i]) << ' ';
}
 
int main()
{
    setlocale(LC_ALL,"Rus");
    int n;
    cout << "Input n: ";
    cin >> n;
 
    int *a = new int[n];
    for(int i = 0; i < n; i++)
        a[i] = rand()%30 - 15;
    
    cout << "\nИсходный массив: \n" << endl;
    printArr(a, n);
 
    cout << "\n\nИсходный массив в двоичном виде: \n" << endl;
    printBinaryArr(a, n);
 
    int max = a[0];
    for(int i = 0; i < n; i++)
        if (a[i] > max) max = a[i];
 
    int k = 0; // число отрицательных элементов
    for(int i = 0; i < n; i++)
    {
        if (a[i] < 0) 
        {
            a[i]+=max;
            k++;
        }
    }
    
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам: \n" << endl;
    printArr(a, n);
 
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам, в двоичном виде: \n" << endl;
    printBinaryArr(a, n);
 
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам, в двоичном виде со сдвигом влево на k позиций: \n" << endl;
    for(int i = 0; i < n; i++)
        cout << bitset<8>(a[i] << k) << ' ';
 
    _getch();
    return 0;
}
Добавлено через 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
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
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <bitset>
 
using namespace std;
 
void printArr(int *a, int &n)
{
    for(int i = 0; i < n; i++)
        cout << *(a+i) << ' ';
}
 
void printBinaryArr(int *a, int n)
{
    for(int i = 0; i < n; i++)
        cout << bitset<8>(*(a+i)) << ' ';
}
 
int main()
{
    setlocale(LC_ALL,"Rus");
    int n;
    cout << "Input n: ";
    cin >> n;
 
    int *a = new int[n];
    for(int i = 0; i < n; i++)
        *(a+i) = rand()%30 - 15;
    
    cout << "\nИсходный массив: \n" << endl;
    printArr(a, n);
 
    cout << "\n\nИсходный массив в двоичном виде: \n" << endl;
    printBinaryArr(a, n);
 
    int max = *a;
    for(int i = 0; i < n; i++)
        if (*(a+i) > max) max = *(a+i);
 
    int k = 0; // число отрицательных элементов
    for(int i = 0; i < n; i++)
    {
        if (*(a+i) < 0) 
        {
            *(a+i)+=max;
            k++;
        }
    }
    
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам: \n" << endl;
    printArr(a, n);
 
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам, в двоичном виде: \n" << endl;
    printBinaryArr(a, n);
 
    cout << "\n\nМассив, полученный в результате прибавления максимума к \nотрицательным элементам, в двоичном виде со сдвигом влево на k позиций: \n" << endl;
    for(int i = 0; i < n; i++)
        cout << bitset<8>(*(a+i) << k) << ' ';
 
    _getch();
    return 0;
}
BumerangSP
02.02.2013, 01:53     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
  #3
 Комментарий модератора 
Дублирование тем запрещено.
Правила форума
Закрыто.
Yandex
Объявления
02.02.2013, 01:53     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
Закрытая тема Создать тему
Опции темы

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