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

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

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

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

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

Дан массив 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++
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.

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

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

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

В матрице все отрицательные элементы следующие за строкой с наибольшим элементом увеличить на 10 - C++
• В матрице все отрицательные элементы в строках, которые следуют за стро¬кой, содержащей наибольший элемент, увеличить на 10

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

Одномерные массивы, удалить все повторяющиеся элементы, оставив только первые вхождения - C++
Задача на C++: из заданного массива удалить все повторяющиеся элементы, оставив только их первые вхождения. Вот моя программа, помогите...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
Закрытая тема Создать тему
Опции темы

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