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

последовательность чисел сколько раз меняеться знак - C++

Восстановить пароль Регистрация
 
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
18.10.2010, 16:19     последовательность чисел сколько раз меняеться знак #1
есть к примеру массив чисел 10, -4, 12, 56, -5, -89 тут они меняю знак 3 раза, как описать в программе сколько раз любая последовательность чисел может менять знак?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 16:19     последовательность чисел сколько раз меняеться знак
Посмотрите здесь:

C++ имеется последовательность чисел содержащая n элементов, определить сколько раз в ней меняется знак
(CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак C++
C++ Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
C++ Массив: Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которой происходит смена знака.
Дана последовательность ненулевых целых чисел, оканчивающаяся нулем. Определить, сколько раз в этой последовательности меняется знак C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.10.2010, 16:24     последовательность чисел сколько раз меняеться знак #2
Вы имеете ввиду, чтобы было так:
+ - ++ -- +++ --- ++++ ---- .......?
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
18.10.2010, 16:29  [ТС]     последовательность чисел сколько раз меняеться знак #3
допустим у нас есть массив, мы заполняем его произвольной последовательностью чисел с минусом и без, и нужно определить сколько раз понялся знак с минуса на плюс или на оборот
вот к примеру здесь 10, -4, 12, 56, -5, -89 знак менялся 3 раза.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.10.2010, 16:37     последовательность чисел сколько раз меняеться знак #4
А. Ну каков вопрос, таков и ответ))) А что вам не ясно? Запоминать в одну переменную знак предыдущего числа, а в другую текущего, и сравнивать их. Если не равны - увеличивать счётчик.
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
18.10.2010, 16:40  [ТС]     последовательность чисел сколько раз меняеться знак #5
Спасибо, всё оказываеться элементарно просто) лучшего ответа и не придумаешь)))
Zerkalka
 Аватар для Zerkalka
37 / 36 / 2
Регистрация: 09.03.2010
Сообщений: 79
18.10.2010, 16:43     последовательность чисел сколько раз меняеться знак #6
немного другой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
 
    int argc;
    cin >> argc;
    int mas[argc];
    int count = 0;
 
    for (int i=1; i<=argc; i++)
    {
        cin >> mas[i];
        if (i>1){
            if (((mas[i-1]<0)&&(mas[i]>0))||((mas[i-1]>0)&&(mas[i]<0)))
            { count++; }
        }
    }
    cout << count << endl;
    return 0;
}
исправляй под себя
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2010, 17:13     последовательность чисел сколько раз меняеться знак
Еще ссылки по теме:

Дана последовательность чисел. Сколько раз в ней встречается максимальное число? C++
C++ Определить, сколько раз меняется знак в последовательности чисел, введенных с клавиатуры, применив массив
Определить сколько раз меняется знак в последовательности чисел C++

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
18.10.2010, 17:13     последовательность чисел сколько раз меняеться знак #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
//////////////////////////////////////////////////////////////////////////////////
//  есть к примеру массив чисел 10, -4, 12, 56, -5, -89 тут они меняю знак 3 раза, 
//как описать в программе сколько раз любая последовательность чисел может менять знак
//////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////
typedef std::vector<int>  T_nums;
//////////////////////////////////////////////////////////////////////////////////
struct T_is_sign_changes
{
    int operator() (int a, int b)
    {
        return static_cast<int>(a * b == 0 ? a < 0 || b < 0 : a * b < 0);
    }
};
//////////////////////////////////////////////////////////////////////////////////
int  get_sign_changes_quantity(const T_nums&  nums)
{
    T_nums  sign_changes(nums.size());
    std::adjacent_difference(nums.begin(), nums.end(), sign_changes.begin(), 
                             T_is_sign_changes());
 
    return std::count(sign_changes.begin() + 1, sign_changes.end(), 1);
}
//////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите длину последовательности: ";
    int n;
    std::cin >> n;
    T_nums  nums(n);
    std::cout << "Введите "
              << n 
              << " положительных и отрицательных чисел: "
              << std::endl;
    for(int i = 0; i < n; ++i)
    {
        std::cout << "-> ";
        std::cin >> nums[i];
    }
    std::cout << "В этой последовательности знак меняется "
              << get_sign_changes_quantity(nums)
              << " раз."
              << std::endl;
}
Yandex
Объявления
18.10.2010, 17:13     последовательность чисел сколько раз меняеться знак
Ответ Создать тему
Опции темы

Текущее время: 21:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru