Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 31

Проверить чередуются ли в массиве положительные и отрицательные числа

09.11.2022, 01:16. Показов 592. Ответов 7

Студворк — интернет-сервис помощи студентам
Решить задачу для динамического массива, не используя индексацию. Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести сообщение, если нет, то вывести номер первого элемента, нарушающего закономерность.
--------
Пытался по-разному, никак не выводит правильно, помогите пж

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
#include<iostream>
#include<math.h>
#include<time.h>
#include <stdlib.h>
#include <locale.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    int i, N;
    cout << "Введите размер массива: " << endl;
    cin >> N;
    int *a = new int[N];
    int k = 0;
    for (i = 0; i < N; i++)
    {
        *(a + i) = rand() % 101 - 50;
    }
    cout << endl << "Массив: " << endl;
    for (i = 0; i < N; i++)
    {
        cout << *(a + i) << " ";
    }
    cout << endl;
    for (i = 0; i < N; i++)
    {
        if (int(*(a + i)) * int(*(a + i + 1)) < 0)
        {
            k += 1;
        }
        if (i == N - 1)
        {
            cout << "числа чередуются";
        }
        else
        {
            cout << "номер первого элемента, нарушающего закономерность: " << k << endl;
        }
        delete[]a;
        a = NULL;
        return 0;
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2022, 01:16
Ответы с готовыми решениями:

Проверить, чередуются ли в массиве положительные и отрицательные числа.
Прошу ПОМОГИТЕ! Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если...

Проверить, чередуются ли в массиве положительные и отрицательные числа
Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести...

Проверить чередуются ли в массиве положительные и отрицательные числа
коллеги подскажите плз, где в коде ошибка? не правильно работает( //3. Дан массив ненулевых целых чисел размера N. Проверить,...

7
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
09.11.2022, 02:08
Цитата Сообщение от xd000 Посмотреть сообщение
Решить задачу для динамического массива, не используя индексацию.
Это с использованием адресной арифметики?

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
#include <iostream>
 
int getSign(int value) {
    return value > 0 ? 1 : value < 0 ? -1 : 0;
}
 
int *findFirstNotAlternating(int *begin, int *end) {
    for (int *last = end - 1; begin != last; ++begin) {
        if (getSign(*begin) == getSign(*(begin + 1))) {
            return begin + 1;
        }
    }
    return end;
}
 
int main() {
 
    std::size_t size;
    std::cin >> size;
    int *array = new int[size];
 
    for (int *i = array, *end = array + size; i != end; ++i) {
        std::cin >> *i;
    }
 
    auto firstFailed = findFirstNotAlternating(array, array + size);
    if (firstFailed != array + size) {
        std::cout << "At: " << (firstFailed - array) << ", value: " << *firstFailed;
    } else {
        std::cout << "Alternating." << '\n';
    }
 
    delete[] array;
    return 0;
}
2
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
09.11.2022, 02:14
Лучший ответ Сообщение было отмечено xd000 как решение

Решение

xd000,
1) в твоем коде может нарушаться условие
массив ненулевых целых чисел
замени соответствующие строки [кода] на, например, следующие
C++
1
2
  for (i = 0; i < N; i++)
    *(a + i) = (random(50) + 1) * (random(2) ? 1 : -1);
2) "нормальная" проверка на чередование может быть такой (у тебя, честно говоря, ерунда какая-то):
C++
1
2
3
4
5
6
7
8
9
10
11
12
  int k = 0;
  for (i = 0; i < N - 1; i++)
    if ((*(a + i)) * (*(a + i + 1)) > 0)
    {
      k = i + 1;
      break;
    }
 
  if (!k)
    cout << "числа чередуются";
  else
    cout << "номер первого элемента, нарушающего закономерность: " << k << endl;
Насчет "отсутствия индексации" - я хз (правильно ли у тебя или нет).
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.11.2022, 02:24

Не по теме:

Цитата Сообщение от xd000 Посмотреть сообщение
не используя индексацию
Прошел мимо.


Цитата Сообщение от gunslinger Посмотреть сообщение
Насчет "отсутствия индексации" - я хз (правильно ли у тебя или нет)
Конечно неправильно, что это за махлеж ?
Цитата Сообщение от xd000 Посмотреть сообщение
for (i = 0; i < N; i++)
с указателями так не поступают

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
с указателями так не поступают
C++
1
2
while(p<(beg+N))
...
Добавлено через 1 минуту
Ну в смысле текущий меньше за концом
2
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
09.11.2022, 02:34
Я (к стыду своему) никогда с этими указателями, ссылками и прочими классами никогда особо не дружил (хотя это минимально необходимые основы, спорить не буду).
Головой что-то понимаю, а вот руки - они из опы растут.
Для хобби такое вполне сойдет / пойдет (наверно). Но "в приличном обществе лучше об этом умолчать".
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.11.2022, 02:40
gunslinger,
Итераторы, те же указатели, только к каждому типу итератора, могут налагаться ограничения и другие правила.
На самом деле , ты с ними хорошо знаком.

Добавлено через 4 минуты
Цитата Сообщение от gunslinger Посмотреть сообщение
ссылками
Это прелесть доступная только в С++, из множества подобных ЯП.
Что качественно выделяло его из других.
С концептами увы пока еще непонятно.
ИХ добавление и становление, я вижу лишь как проблему для ЯП.
С ними обычный С++ можно превратить в любое говно.
Сам недвано протестировал на с++20 с концептами, с auto как параметрами функции можно играться как с шаблонами.
Что очень противно и не естественно.
Лучше бы завели новое ключевое словов, хотя и это ничем не лучше.
Походу придется засесть на С++17 и оттуда ни ногой, тем самым выбрав и области в которых хотел/мог бы участвовать.
1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
09.11.2022, 02:48
Указатели это те же индексы, только в профиль? Я в терминологии не силен.
Если да, то тогда, наверно, знаком (обманул я, получается, но не специально).
У меня в старом билдере максимум С++11 (причем не факт, что это там есть), и то я мало чем пользуюсь.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.11.2022, 02:50
Цитата Сообщение от gunslinger Посмотреть сообщение
Это те же индексы, только в профиль
Индексы имеют диапазон [), указатели нет, этим они качественно отличаются от индексов.
Они идентичны при использовании указателей относительно массивов, диапазонов доступа..
Зачем это делают с массивами, никогда не знал.
Может пытаются универсализировать полученные знания.

Добавлено через 1 минуту
Цитата Сообщение от gunslinger Посмотреть сообщение
С++11, и то я мало чем пользуюсь
Это просто задачи такие стоят, мелкие. Тут все норм.
Нет нужды - эти инструменты не используются.
Но знать про них и помнить, будет полезно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2022, 02:50
Помогаю со студенческими работами здесь

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

Массив: Проверить, чередуются ли в массиве положительные и отрицательные числа
3. Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то...

В массиве размера n проверить, чередуются ли положительные и отрицательные числа
Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести...

Дан вещественный массив размера N. Проверить чередуются ли в нем положительные и отрицательные числа
Дан вещественный массив размера N. Проверить чередуются ли в нем положительные и отрицательные числа. (Да, Нет) Помогите пожалуйста...

Проверить, чередуются ли в массиве положительные и отрицательные числа
11.2 Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru