1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Задача На Одномерные Массивы С Указателями

Тема в разделе "Вопросы новичков и не только", создана пользователем Lizzz, 26 май 2013.

  1. Lizzz

    Lizzz New Member

    Репутация:
    0
    Регистрация:
    26 янв 2013
    Сообщения:
    0
    Симпатии:
    0
    Добрый день! Помогите пожалуйста найти ошибку в коде. Программа работает правильно, ответ выводит верный, но после этого выскакивает окно с сообщением об ошибке. Не пойму, в чем дело.
    Вот условие задачи, ее нужно реализовать через указатели:
    Переменной t присвоить значение true, если в массиве нет нулевых элементов и при этом положительные элементы чередуются с отрицательными и значение false в противном случае.
    А вот код моей программы:

    Код:
    #include <iostream>
    #include <clocale>
    
    using namespace std;
    int main()
    
    { const int n = 5;
    int a[n], i;
    int *pbegin = a;
    int *pend = a + 5;
    bool t;
    for (i = 0; i < 5; i++)
    {
    cin >> a[i];
    }
    
    t = true;
    for (i = 0; i < n && t; i++)			
    if (a[i] == 0) t = false;
    for (int i = 1; i < n && t; i++)
    if (a[i] * a[i - 1] > 0)
    t = false;
    cout<< t <<endl; 	 
    
    delete [] a;
    return 0;
    
    }
    Пожалуйста, помогите разобраться, что тут не так. Заранее спасибо
     
  2. ruamanga

    ruamanga New Member

    Репутация:
    0
    Регистрация:
    12 янв 2012
    Сообщения:
    4
    Симпатии:
    0
    Строка :
    delete [] a;
    явно лишняя т.к. delete используется к объектам созданным через new.

    у меня отработало без ошибки:
    Код:
    #include <iostream>
    
    int main() {
    const int n = 5;
    int a[n], i;
    bool t;
    
    for (i = 0; i < n; i++) {
    std::cin >> a[i];
    }
    
    t = true;
    
    for (i = 0; i < n && t; i++) {
    if (a[i] == 0) t = false;
    }
    
    for (int i = 1; i < n && t; i++) {
    if (a[i] * a[i - 1] > 0) t = false;
    }
    
    std::cout << t <<std::endl;
    
    return 0;
    }
     
Загрузка...

Поделиться этой страницей