Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Sergey_Golovko
-7 / 0 / 0
Регистрация: 10.06.2011
Сообщений: 13
#1

Домножить все члены заданной последовательности на квадрат минимума или максимума, в зависимости от условия - C++

11.06.2011, 21:59. Просмотров 1452. Ответов 9
Метки нет (Все метки)

3. Одномерные массивы

Дана последовательность действительных чисел а1, а2 ..., аn. Требуется домножить все члены последовательности а1, а2 ..., аn на квадрат ее наименьшего члена, если ак> 0, и на квадрат ее наибольшего члена, если ак< 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 21:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Домножить все члены заданной последовательности на квадрат минимума или максимума, в зависимости от условия (C++):

Найти наименьший элемент массива и домножить на него все члены последовательности
5) Дан массив А(40). Найти наименьший элемент массива и домножить на него все...

Найти наименьший элемент массива и домножить на него все члены последовательности, предшествующие этому члену
Dev C++ использовать библиотеки (&lt;include stdio.h&gt; и тд) Дан массив А(40)....

Сумма максимума и минимума в последовательности целых чисел
Задана последовательность целых чисел. Числа нумеруются по порядку следования,...

Массив: Определить сумму максимума и минимума последовательности.
Написать программу на Pellec C : Задана последовательность вещественных...

Нахождение минимума/максимума в конкретной строке или столбце
Ребят, подскажите пожалуйста, я забыл как находить минимальный/максимальный...

Вывести члены заданной последовательности
Помогите сделать

9
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.06.2011, 05:55 #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
#include <iostream>
#include <math.h>
 
int n;
 
float min(float* arr)
{
    float min = arr[0];
    for (int i = 1; i < n; ++i)
        min = std::min(min, arr[i]);
    return min;
}
 
float max(float* arr)
{
    float max = arr[0];
    for (int i = 1; i < n; ++i)
        max = std::max(max, arr[i]);
    return max;
}
 
void result(float* arr, float num)
{
    std::cout << "result: \n";
    for (int i = 0; i < n; ++i)
    {
        arr[i] *= pow(num, 2);
        std::cout << arr[i] << ' ';
    }
    system("pause");
}
       
int main()
{
    std::cout << "enter n: \n";
    std::cin >> n;
    int k;
    std::cout << "enter k: \n";
    std::cin >> k;
    if (k < 1)
    {
        std::cout << "k < 1\n";
        system("pause");
        return 0;
    }
    float* arr = new float [n];
    std::cout << "enter array: \n";
    for (int i = 0; i < n; ++i)
        std::cin >> arr[i];
    if (arr[k-1] > 0)
        result(arr, min(arr));
    else if (arr[k-1] < 0)
        result(arr, max(arr));
    else
    {
        std::cout << "arr[k] == 0\n";
        system("pause");
        return 0;
    }
}
0
ITALIANO
1 / 1 / 4
Регистрация: 24.10.2014
Сообщений: 186
08.12.2015, 14:51 #3
C++
1
min = std::min(min, arr[i]);
Что обазначает и почему работает только с std::?

Добавлено через 39 минут
Конкретно именно эта строчка...

Добавлено через 2 минуты
И ещё вот эта строчка:
C++
1
max = std::max(max, arr[i]);
Добавлено через 2 минуты
Проблема в том, что программа действительно находит минимальное число, которое потом возводит в квадрат, а потом умнажает на все числа в том числе и на сому себя, но я не знаю как сделать так что бы именно максимальный элемент возвёлся в квадрат и перемножил всё, в том числе и на самого себя...

Добавлено через 17 минут
Помогите пожалуйста, мне порой кажется, что код не верен...

Добавлено через 10 минут
Помогите, мне очень нужно!!!

Добавлено через 8 минут
Что тут происходит в программе?
C++
1
2
3
4
5
6
7
8
9
    float* arr = new float [n];
    cout << "enter array: "<<endl;
    for (int i = 0; i < n; ++i)
        cin >> arr[i];
    if (arr[k-1] > 0)
        result(arr, min(arr));
    else if (arr[k-1] < 0)
        result(arr, max(arr));
    else
0
SupremeEP
2 / 2 / 2
Регистрация: 01.12.2015
Сообщений: 33
08.12.2015, 15:23 #4
C++
1
2
3
4
5
6
7
8
9
float* arr = new float [n];
    cout << "enter array: "<<endl;
    for (int i = 0; i < n; ++i)
        cin >> arr[i];
    if (arr[k-1] > 0)
        result(arr, min(arr));
    else if (arr[k-1] < 0)
        result(arr, max(arr));
    else
Здесь мы, грубо говоря, создаём массив из n элементов и заполняем его, далее мы берём k-1 элемент, так как нумерация элементов массива начинается с нуля, и затем перемножаем все элементы массива при помощи функции result() в зависимости от числа arr[k-1].

Функции max и min определяют максимальное и минимальное число соответственно.
Здесь max(arr) пройдёт по всему массиву arr и найдёт максимальное число.
С min(arr) таже история.

P.S. Я бы использовал вектор.
0
ITALIANO
1 / 1 / 4
Регистрация: 24.10.2014
Сообщений: 186
09.12.2015, 04:21 #5
SupremeEP, Спасибо большое, за разъяснение, если можно прокомментируйте 1 строчку с new float и ещё вот это...
C++
1
 cout << arr[k]==0;
0
SupremeEP
2 / 2 / 2
Регистрация: 01.12.2015
Сообщений: 33
09.12.2015, 09:18 #6
Здесь мы создаём новый объект в виде массива из n элементов.
C++
1
float* arr = new float [n];
Тут, по идее, выводится 1(true), если arr[k] равен нулю и 0(false), если не равен. Но чтобы это заработало нужно взять условие в скобки.
C++
1
cout << arr[k]==0;

Если так не сделать, то будет выводиться просто arr[k].
C++
1
cout << (arr[k]==0);
0
ITALIANO
1 / 1 / 4
Регистрация: 24.10.2014
Сообщений: 186
09.12.2015, 12:06 #7
Пожалуйста помогите с этой строчкой кода
C++
1
min = std::min(min, arr[i]);
, без std:: не работает прога а так у меня всё прописано через
C++
1
using namespace std;
Добавлено через 22 секунды
то же самое и с максимумом

Добавлено через 5 минут
Если есть, дайте альтернативу этой строчке.
0
SupremeEP
2 / 2 / 2
Регистрация: 01.12.2015
Сообщений: 33
09.12.2015, 12:11 #8
Так пиши с std:: и без
C++
1
using namespace std;
Так даже лучше будет.
0
ITALIANO
1 / 1 / 4
Регистрация: 24.10.2014
Сообщений: 186
09.12.2015, 12:13 #9
SupremeEP, не в этом дела, я не понимаю что делает строчка, тем более, что там стоит std::.
0
SupremeEP
2 / 2 / 2
Регистрация: 01.12.2015
Сообщений: 33
09.12.2015, 12:48 #10
Ну это более известная форма функции min(), где в качестве аргументов две переменные. Возвращает min() самое меньшее из них.
C++
1
min = std::min(min, arr[i]);
То есть, если переменная min меньше arr[i], то она останется неизменной, а если нет, то станет arr[i].
Та же история с функцией max().
0
09.12.2015, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2015, 12:48
Привет! Вот еще темы с решениями:

Даны две последовательности. Верно ли, что все члены второй последовательности входят в первую?
Даны две последовательности a^1,a^2,...,a^n, b^1,b^2,...,b^n (m&lt;n). В каждой из...

Найти все члены последовательности
Дано вещественное b&gt;=1. Найти все члены последовательности a, построенной по...

Домножить все члены заданной последовательности, на квадрат ее наименьшего (или наибольшего) члена
Доброго времени суток. В универе нам задали задание &quot;даны действительные числа...

Домножить все члены последовательности на квадрат ее наименьшего числа
Даны действительные числа a1,a2,...,a30. Требуется домножить все члены...


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

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

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