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

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

Войти
Регистрация
Восстановить пароль
 
Dron16
3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
#1

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

01.02.2013, 22:17. Просмотров 572. Ответов 2
Метки нет (Все метки)

Дан массив A[N]. Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг влево на k позиций, где k – число отрицательных элементов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 22:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг) (C++):

Массив: Все отрицательные элементы увеличить на значение максимального элемента - C++
Составить программу обработки одномерного массива. Доступ к элементам массива осуществлять с помощью указателя. Элементы массива заполнить,...

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

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

Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента - C++
Задача: Задан одномерный массив F(N) (N<=60). Если последний элемент массива положителен, то все элементы массива увеличить на квадрат...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента - C++
Помогите пожалуйста решить эту задачу, Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций,...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента. - C++
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.

2
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;
}
1
BumerangSP
02.02.2013, 01:53     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
  #3
 Комментарий модератора 
Дублирование тем запрещено.
Правила форума
Закрыто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2013, 01:53
Привет! Вот еще темы с ответами:

Заменить все отрицательные элементы массива на значение минимального элемента - C++
1) Задан массив из 6 действительных чисел. Заменить все элементы с отрицательным значением на значение минимального элемента.

Уменьшить все четные элементы матрицы на значение максимального элемента - C++
В с++ составить программу, в которой: 1) организовать ввод квадратной матрицы размера n*n из целых чисел 2) уменьшить все четные...

В однородном массиве все отрицательные элементы увеличить на 2, а все положительные заменить на 1 - C++
помогите пожалуйста написать программу. В массиве все отрицательные элементы увеличить на 2, а все положительные заменить на 1

Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо - C++
Помогите доделать задачу на С++ 1.Дан массив A. Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить...


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

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

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