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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
abra-kadabra
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 11
#1

С клавиатуры вводятся массив целых чисел. Проверить наблюдается ли в массиве чередование положительных и отрицательных элементов - C++

25.01.2014, 22:05. Просмотров 750. Ответов 5
Метки нет (Все метки)

С клавиатуры вводятся массив целых чисел. Проверить наблюдается ли в массиве чередование положительных и отрицательных элементов.
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
#include <stdio.h>
 
int main()
{   const int N=9;
    int arr[N];
    int i,b=0;
 
 
 
    for(i=0;i<N;i++)
         {printf("Number %u:",i+1);
          scanf("%d",&arr[i]);
         }
 
    for(i=0;i<N;i++)
    {printf("%d ",arr[i]);
    }
 
   for(i=0;i<N;i++)
        {
            if(arr[i]<0&&arr[i+1]>0)
            {
 
            }
        }
 
    for(i=0;i<N;i++)
        {if(arr[i]>0&&arr[i+1]<0)
            {
 
            }
        }
    printf("b=%d a=\n",b);
 
    return 0;
}
что в теле цикла нужно написать?? у меня были свои варианты, но получается чертовщина какая-то.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С клавиатуры вводятся массив целых чисел. Проверить наблюдается ли в массиве чередование положительных и отрицательных элементов (C++):

Дан массив целых чисел. Написать две функции ( количество положительных и отрицательных элементов) - C++
Дан массив целых чисел. Написать две функции, которые возвращают количество положительных и отрицательных элементов в массиве.

В массиве целых чисел a1 , a2 , ., a10 найти количество положительных Np и отрицательных No членов - C++
В массиве целых чисел a1, a2, ..., a10 найти количество положительных Np и отрицательных No членов.

Ввести с клавиатуры массив из N чисел (N также вводится с клавиатуры). Найти наименьший из его положительных элементов. - C++
Ввести с клавиатуры массив из N чисел (N также вводится с клавиатуры). Найти наименьший из его положительных элементов. Начиная от этого...

Определить количество отрицательных элементов в массиве из 10 целых чисел - C++
1. Определить количество отрицательных элементов в массиве из 10 целых чисел.

С клавиатуры вводятся последовательность целых чисел 0 - признак окончания последовательности - C++
определит ьверно ли утверждение количество нечетных чисел последовательности меньше количества четных... ноль не учитывается

С клавиатуры вводятся последовательность целых чисел.0 - признак окончания последовательности - C++
С клавиатуры вводятся последовательность целых чисел.0 - признак окончания последовательности.Определить,верно ли утверждение : в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
25.01.2014, 22:33 #2
Важно помнить, что 0 - ни положительное ни отрицательное число.
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
#include <iostream>
 
bool foo(int *arr, const int size)
{
    if (arr[0] == 0)
        return false;
    bool lastPos = arr[0] > 0; // истина если последнее число - положительное
 
    for (int i = 1; i < size; i++)
    {
        bool currPos = arr[i] > 0; // истина если последнее число - положительное
        if (arr[i] == 0 || lastPos == currPos) // если число - ноль или знаки совпали
        {
            std::cout << arr[i] << std::endl;
            return false;
        }
        lastPos = currPos; // записываем в последнее значение текущее
    }
 
    return true;
}
 
int main()
{
    const int N = 5; // количество чисел последовательности
    int A[N];
    // заполняем массив
    for (int i=0; i < N; i++)
        std::cin >> A[i];
    std::cout << std::boolalpha << foo(A, N) << std::endl;
}
0
abra-kadabra
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 11
26.01.2014, 15:17  [ТС] #3
Спасибо, что ответили. По поводу нуля я знал, что он не относится. Я не понимаю седьмую строчку arr[0] > 0; ведь это первый элемент>0, при чём тут тогда последнее число?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
26.01.2014, 20:26 #4
abra-kadabra, если вы заметили - мы дальше двигаемся от 1 элемента. Первое сравнение нужно чтобы установить начальную позицию.
0
abra-kadabra
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 11
27.01.2014, 03:03  [ТС] #5
неа, не заметил. ааа кажется понял. спасибо

Добавлено через 3 часа 13 минут
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
#include <stdio.h>
 
int main()
{   const int N=10;
    int arr[N];
    int b=1;
 
 
    for(int i=0;i<N;i++)
         {printf("Number %u:",i+1);
          scanf("%d",&arr[i]);
         }
 
    for(int i=0;i<N;i++)
    {printf("%d \n",arr[i]);
    }
 
 
   for(int i=0;i<N-1;i++)
        {
       if(((arr[i]>0)&&(arr[i+1]<0))||((arr[i]<0)&&(arr[i+1]>0)))
             {b=0;}
            else
              {b=1;
              break;
              }
 
        }
 
if(b>0)
{
    printf("ne cher");
}
else
{
    printf("cher");
}
    return 0;
}
вот то, что у меня получилось. Я не совсем понял почему последнее значение + указатели мы и вовсе не проходили. Вопрос следующий как сделать вот эту задачу без if?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
27.01.2014, 03:32 #6
Цитата Сообщение от abra-kadabra Посмотреть сообщение
Я не совсем понял почему последнее значение + указатели мы и вовсе не проходили.
Потому что сравниваем с элементом, который идет далее. За последним элементом ничего не идет, не с чем сравнивать.

Код оформляйте в теги CPP. Задачу без if решать можно лишь сделав его использование завуалированным - например через циклы. Но по сути, элементарная логика для сравнений тут нужна.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2014, 03:32
Привет! Вот еще темы с ответами:

Найти процент отрицательных чисел в массиве и вычислить сумму первого и последнего положительных элементов - C++
Задание 1.Задан массив вещественных чисел Х(n). Найти: • процент отрицательных чисел в массиве; • сумму первого и последнего...

Найти среднее арифметическое всех целых чисел от a до b (значения a и b вводятся с клавиатуры, b>=a) - C++
Как переделать код Паскаль в код Си++? var a, b: Longint; //Задаем тип данных длинной версии integer ...

Последовательно вводятся N целых чисел. Найти произведение всех отрицательных среди них - C++
Нуждаюсь в вашей помощи! Последовательно вводятся N целых чисел. Найти произведение всех отрицательных среди них.

В одномерном массиве, вводимом с клавиатуры и состоящем из 10 целых чисел, вычислить произведение элементов массива с четными номерами - C++
ПОЧЕМУ НЕ РАБОТАЕТ ПРОГРАММА??????? #include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;stdlib.h&gt; const int N=10; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.01.2014, 03:32
Ответ Создать тему
Опции темы

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