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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ затруднаюсь с решением http://www.cyberforum.ru/cpp-beginners/thread777140.html
Ребят я написал тут прогу, я смоделировал эксперемент, пишу дипломную. Так вот у меня все работает, токо вот одно но - когда кампилирую первые значения получаю #inf тоест ДАБЛ или ЛОНГ ДАБЛ не достаточно, так вот я прочитал что в этом случае надо исползовать ГМП (в Windows-е МПИР), но это дастаточно трудно для меня, и читаю инструкции не могу ничего понять. так вот может ли кто нибудь помоч с...
C++ Вычислить сумму квадратов чисел от 1 до введенного вами целого числа С помощью оператора WHILE напишите программу, вычисляющую сумму квадратов чисел от 1 до введенного вами целого числа. http://www.cyberforum.ru/cpp-beginners/thread777097.html
Найти сумму ряда C++
Программирование циклических алгоритмов:
C++ Реально ли написать игру ААА класса на c++ одному
Народ всем привет У меня вопрос вот мы с другом поспорили что он сможет с помощю UDK(игровой движок под C++) и 2 готовых моделек написать и анимировать игру типа Ea sports MMA с множеством приемов это вообще возможно? Если да то за кое время?(просто он мне говорит давай игруху делать а я ему говорю что она нафиг некому не нужна будет т.к высокого качества не добиться или это не так?)
C++ Написание класса http://www.cyberforum.ru/cpp-beginners/thread777063.html
Добрый день! Задача написать класс sequence - a container class implementation. Класс sequence организован в строгом порядке, что числа следуют друг за другом. Есть header file - необходимо дописать implementation file. Пример кода здесь: header file:
C++ Дано: n, a[n], b[n]. Используя макроопределение с аргументами , найти min элемент в каждом массиве. Дано: n, a, b. Используя макроопределение с аргументами , найти min элемент в каждом массиве. Напечатать наибольшее из min элементов. подробнее

Показать сообщение отдельно
Glimpse
9 / 9 / 2
Регистрация: 21.01.2013
Сообщений: 20
02.02.2013, 00:00     Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг)
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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru