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

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

Восстановить пароль Регистрация
 
AlenaPark
0 / 0 / 0
Регистрация: 21.02.2016
Сообщений: 35
01.03.2016, 08:34     Определить, сколько раз в последовательности меняется знак #1
Дана последовательность ненулевых целых чисел, оканчивающая нулем. Определить, сколько раз в этой последовательности меняется знак. C++, с оператором условия пжл
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2016, 08:34     Определить, сколько раз в последовательности меняется знак
Посмотрите здесь:

Определить сколько раз меняется знак в последовательности C++
C++ Определить, сколько раз в последовательности меняется знак.
Дана последовательность ненулевых целых чисел, оканчивающаяся нулем. Определить, сколько раз в этой последовательности меняется знак C++
Определить, сколько раз в последовательности меняется знак числа C++
Определить, сколько раз во введенной последовательности меняется знак при переходе к следующему элементу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-ДоМоВоЙ-
 Аватар для -ДоМоВоЙ-
117 / 116 / 46
Регистрация: 19.01.2016
Сообщений: 434
Записей в блоге: 1
01.03.2016, 11:51     Определить, сколько раз в последовательности меняется знак #2
AlenaPark,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int arr[10]={1,-2,-3,4,5,-6,7,8,-9,10};
    int cnt=0;
    cout<<"Заданный массив: ";
    for (int i=0;i<10;i++){
        if (arr[i]<0 && arr[i+1]>0 || arr[i]>0 && arr[i+1]<0)
            cnt++;
        cout<<arr[i]<<" ";}
    cout<<endl<<"Знак в масиве меняется: "<<cnt<<" раз."<<endl<<endl;
    system("pause");
    return 0;
}
GbaLog-
Не Эксперт C++
1431 / 617 / 174
Регистрация: 24.08.2014
Сообщений: 2,501
Записей в блоге: 1
Завершенные тесты: 2
01.03.2016, 12:12     Определить, сколько раз в последовательности меняется знак #3
Цитата Сообщение от Cadr Посмотреть сообщение
if (arr[i]<0 && arr[i+1]>0 || arr[i]>0 && arr[i+1]<0)
Когда i = 9, arr[i+1] - выход за пределы массива.

Добавлено через 8 минут
AlenaPark,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
 
int main()
{
    bool minus = false;
    cout << count_if(istream_iterator<int>(cin),istream_iterator<int>(),[&minus](int n) { 
        if(minus) if(n<0) return false; else {minus = false; return true;}
        else if(n>0) return false; else {minus = true; return true;}
    }) << endl;
}
Байт
 Аватар для Байт
13951 / 8782 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
06.10.2016, 12:36     Определить, сколько раз в последовательности меняется знак #4
Цитата Сообщение от -ДоМоВоЙ- Посмотреть сообщение
if (arr[i]<0 && arr[i+1]>0 || arr[i]>0 && arr[i+1]<0)
можно заменить на
C++
1
if (arr[i]*arr[i+1] < 0)
Yandex
Объявления
06.10.2016, 12:36     Определить, сколько раз в последовательности меняется знак
Ответ Создать тему
Опции темы

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