3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
1

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

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

Author24 — интернет-сервис помощи студентам
Дан массив A[N]. Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг влево на k позиций, где k – число отрицательных элементов
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2013, 22:17
Ответы с готовыми решениями:

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

Для каждого из массивов S(11), Р(9) все отрицательные элементы поделить на значение максимального элемента
Для каждого из массивов S(11), Р(9) все отрицательные элементы поделить на значение максимального...

в массиве А [n] отрицательные элементы заменить на значение максимального элемента, нули – на значение минимального элемента.
в массиве А отрицательные элементы заменить на значение максимального элемента, нули – на значение...

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

2
9 / 9 / 8
Регистрация: 21.01.2013
Сообщений: 20
02.02.2013, 00:00 2
Лучший ответ Сообщение было отмечено Dron16 как решение

Решение

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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2013, 01:53

Элементы строк матрицы увеличить на значение максимального элемента массива
Дан двумерный массив а, содержащий Н строк и M столбцов. Элементы строк, содержащих хотя бы один...

Заменить все отрицательные элементы массива на значение максимального
заменить все отрицательные элементы целочисленного массива, состоящего из n элементов, на значение...

Все отрицательные элементы массива увеличить на среднее арифметическое значение положительных элементов
Очень нужна помощь! В двухмерном массиве чисел все отрицательные элемнты массива увеличить на...

Заменить все отрицательные элементы целочисленного массива размера 10 на значение максимального.
Заменить все отрицательные элементы целочисленного массива размера 10 на значение максимального....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru