Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Sportsm
-18 / 1 / 1
Регистрация: 15.12.2016
Сообщений: 60
1

динамический массив - состоящий только из дробных частей

12.03.2017, 00:40. Просмотров 889. Ответов 9
Метки нет (Все метки)

Описать массив типа double.
Размер указывает пользователь.
Заполнить его случайными значениями.
Работу с массивом реализовать функциями.
Создать динамический массив, состоящий только из дробных частей тех элементов, целая часть которых чётная и положительная.
Создать динамический массив, состоящий только из непрерывных последовательностей положительных чисел.

Доброе время суток
строка 127 не правильная и преподаватель говорит что код не корректнрый
Благодарен за ранее

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<time.h>
using namespace std;
enum Color { Black = 0, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White };
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);///НАДО
 
void setColor(Color text, Color background)
{
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
void setCursor(int x, int y)
{
    COORD c = { x,y };//инициализируем объект координатами
    SetConsoleCursorPosition(hStdOut, c);
}
 
 
void random(double *mas, int size)//int *mas - передача динамического массива, int **mas - передача двумерного динамического массива
{
    for (int i = 0; i < size; i++)
    {
        mas[i] = (-10 + rand() % 45) / 10.0;
    }
 
}
void display(double *mas, int size)
{
    for (int i = 0; i < size; i++)
    {
        setColor(White, Black);
        cout << mas[i];
        setColor(Red, Black);
        cout << "--";
        setColor(White, Black);
    }
    cout << '\n';
}
double *chetplus(double *mas, int size, double *temp, int &razm)
{
    razm = 0;
 
    for (int i = 0; i<size; i++)
    {
        if (mas[i]>0 && int(mas[i]) % 2 == 0)
        {
            razm++;     
        }
    }
    delete[]temp;
    temp = new double[razm]; 
 
    if (razm>0)
    {
        for (int i = 0, j = 0; i < size; i++)
        {
            if (mas[i]>0 && int(mas[i]) % 2 == 0)
            {
                temp[j] = mas[i] - int(mas[i]); 
                j++;
            }
        }
    }
    return temp;
}
double *plus(double *mas, int size, double *temp, int &razm)
{
    razm = 0;
 
    for (int i = 0; i<size; i++)
    {
        if (mas[i]>0 && mas[i + 1]>0)
        {
            razm++;     
        }
        else if (mas[i - 1]>0 && mas[i]>0 && mas[i + 1] <= 0)
        {
            razm++;
        }
 
    }
    delete[]temp;
    temp = new double[razm];
 
 
    for (int i = 0, j = 0; i < size; i++)
    {
        if (mas[i]>0 && mas[i + 1]>0)
        {
            temp[j] = mas[i];
            j++;
        }
        else if (mas[i - 1]>0 && mas[i]>0 && mas[i + 1] <= 0)
        {
            temp[j] = mas[i]; 
            j++;
        }
 
    }
 
    return temp;
}
 
void main()
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
 
    int size;   
    cin >> size;  
    double *ar = new double[size]; 
 
    int razm = 1;
    double *temp = new double[razm];  
 
 
 
    random(ar, size); 
    display(ar, size); 
    temp = chetplus(ar, size, temp, razm);
    cout << "дробные части четных и положительных int'ов -\n";
    display(temp, razm);
    delete[]temp;
 
    temp = new double[razm];
    temp = plus[](ar, size, temp, razm);
    cout << " только положительные последовательности -\n";
    display(temp, razm); 
    delete[]temp;
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2017, 00:40
Ответы с готовыми решениями:

Динамический массив только из дробных частей тех элементов, целая часть которых чётная и положительная
Доброе время суток, Подскажите как сделать такую задачу Только перешел на...

Создать массив из дробных частей исходного массива целая часть которых чётная и положительная
Размер указывает пользователь. Заполнить его случайными значениями. Работу с...

5. Написать программу, которая предлагает пользователю ввести два дробных числа и выводит в консоль сумму их целых частей и сумму дробных.
5. Написать программу, которая предлагает пользователю ввести два дробных числа...

Сформировать динамический массив, состоящий из динамических строк
Надо сформировать динамический массив, состоящий из динамических строк, а затем...

Функция: создать динамический массив, состоящий из n натуральных чисел и вернуть его из функции
Пришёл к вам за советом. Вот задание. Напишите функцию int* naturals(int n),...

9
nmcf
6400 / 5662 / 2580
Регистрация: 14.04.2014
Сообщений: 23,963
12.03.2017, 07:48 2
Скобки квадратные убери.
0
Manowar
1572 / 509 / 171
Регистрация: 12.03.2016
Сообщений: 1,945
Завершенные тесты: 1
12.03.2017, 09:04 3
Может ругаться на plus
http://ru.cppreference.com/w/cpp/utility/functional/plus
Тогда задать другое имя функции.
0
Sportsm
-18 / 1 / 1
Регистрация: 15.12.2016
Сообщений: 60
12.03.2017, 14:45  [ТС] 4
Цитата Сообщение от nmcf Посмотреть сообщение
Скобки квадратные убери.
Где именно?

Добавлено через 2 минуты
Ели вы за 127-ю строку, то там и убрать квадратные скобки, все равно красным подчеркивает
C++
1
plus
Добавлено через 1 минуту
Вот, убрал

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<time.h>
using namespace std;
enum Color { Black = 0, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White };
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);///НАДО
 
void setColor(Color text, Color background)
{
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
void setCursor(int x, int y)
{
    COORD c = { x,y };//инициализируем объект координатами
    SetConsoleCursorPosition(hStdOut, c);
}
//Описать массив типа double. Размер указывает пользователь. Заполнить его случайными значениями.
//Работу с массивом реализовать функциями.
//Создать динамический массив, состоящий только из дробных частей тех элементов, целая часть которых чётная и пложительная.
//Создать динамический массив, состоящий только из непрерывных последовательностей положительных чисел.
 
void random(double *mas, int size)//int *mas - передача динамического массива, int **mas - передача двумерного динамического массива
{
    for (int i = 0; i < size; i++)
    {
        mas[i] = (-10 + rand() % 45) / 10.0;
    }
 
}
void display(double *mas, int size)
{
    for (int i = 0; i < size; i++)
    {
        setColor(White, Black);
        cout << mas[i];
        setColor(Red, Black);
        cout << "--";
        setColor(White, Black);
    }
    cout << '\n';
}
double *chetplus(double *mas, int size, double *temp, int &razm)
{
    razm = 0;
 
    for (int i = 0; i<size; i++)
    {
        if (mas[i]>0 && int(mas[i]) % 2 == 0)
        {
            razm++;     
        }
    }
    delete[]temp;
    temp = new double[razm]; 
 
    if (razm>0)
    {
        for (int i = 0, j = 0; i < size; i++)
        {
            if (mas[i]>0 && int(mas[i]) % 2 == 0)
            {
                temp[j] = mas[i] - int(mas[i]); 
                j++;
            }
        }
    }
    return temp;
}
double *plus(double *mas, int size, double *temp, int &razm)
{
    razm = 0;
 
    for (int i = 0; i<size; i++)
    {
        if (mas[i]>0 && mas[i + 1]>0)
        {
            razm++;     
        }
        else if (mas[i - 1]>0 && mas[i]>0 && mas[i + 1] <= 0)
        {
            razm++;
        }
 
    }
    delete[]temp;
    temp = new double[razm];
 
 
    for (int i = 0, j = 0; i < size; i++)
    {
        if (mas[i]>0 && mas[i + 1]>0)
        {
            temp[j] = mas[i];
            j++;
        }
        else if (mas[i - 1]>0 && mas[i]>0 && mas[i + 1] <= 0)
        {
            temp[j] = mas[i]; 
            j++;
        }
 
    }
 
    return temp;
}
 
void main()
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
 
    int size;   
    cin >> size;  
    double *ar = new double[size]; 
 
    int razm = 1;
    double *temp = new double[razm];  
 
 
 
    random(ar, size); 
    display(ar, size); 
    temp = chetplus(ar, size, temp, razm);
    cout << "дробные части четных и положительных int'ов -\n";
    display(temp, razm);
    delete[]temp;
 
    temp = new double[razm];
    temp = plus(ar, size, temp, razm);
    cout << " только положительные последовательности -\n";
    display(temp, razm); 
    delete[]temp;
 
}
0
Manowar
1572 / 509 / 171
Регистрация: 12.03.2016
Сообщений: 1,945
Завершенные тесты: 1
12.03.2017, 14:47 5
Лучший ответ Сообщение было отмечено Sportsm как решение

Решение

Sportsm, я Вам что написал? Обзови по другому. (Да в 127)
1
Sportsm
-18 / 1 / 1
Регистрация: 15.12.2016
Сообщений: 60
12.03.2017, 14:59  [ТС] 6
Уважаемый, и pas и mas
Все равно
0
Manowar
1572 / 509 / 171
Регистрация: 12.03.2016
Сообщений: 1,945
Завершенные тесты: 1
12.03.2017, 15:02 7
В 67 (начальный код) тоже переименовал. У меня она скомпилировалась и правильно вроде работала.
0
Manowar
1572 / 509 / 171
Регистрация: 12.03.2016
Сообщений: 1,945
Завершенные тесты: 1
12.03.2017, 15:11 8
Все работает

динамический массив - состоящий только из дробных частей
0
Sportsm
-18 / 1 / 1
Регистрация: 15.12.2016
Сообщений: 60
12.03.2017, 15:34  [ТС] 9
разобрался, спасибо
0
Manowar
1572 / 509 / 171
Регистрация: 12.03.2016
Сообщений: 1,945
Завершенные тесты: 1
12.03.2017, 15:40 10
Пожалуйста.
0
12.03.2017, 15:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2017, 15:40

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой...

Получить массив, состоящий только из четных чисел исходного массива
Здравствуйте, помогите решить проблему. Делаю задание &quot;.Составьте программу ...

Получить массив, состоящий только из нечетных чисел исходного массива
1.Составьте программу для решения следующей задачи: «Дан одномерный массив...


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

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

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