• Твой профиль заполнен на 0%. Заполни за 1 минуту, чтобы тебя нашли единомышленники и работодатели. Заполнить →

Помогите Пожалуйста Найти Ошибку В Коде

  • Автор темы Автор темы Lizzz
  • Дата начала Дата начала
L

Lizzz

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

#include <iostream>
#include <math.h>

using namespace std;
int main()
{
int i;
int a[5];
bool t;
for (i=0; i<5; i++)
{
cout <<"Введите элемент массива: ";
cin >> a ;
}
for (i=0; i<5; i++)
{
if (a*a[i+1]>=0) t = false;

else t = true;}
cout<< t <<endl;
return 0;
}

Не пойму, в чем ошибка, переписывала программу несколько раз разными способами, все равно не работает. При вводе всех единиц выдает true, работает верно только если ввести все нули или несколько нулей.
Помогите пожалуйста, заранее большое спасибо.
 
Переменной t присвоить значение true, если в массиве нет нулевых элементов и при этом положительные элементы чередуются с отрицательными и значение false в противном случае.
Код:
t = true;

for (int i = 0; i < n && t; ++i)
if (0 == a[i]) 
t = false;

for (int i = 1; i < n && t; ++i)
if (a[i] * a[i - 1] > 0)
t = false;

std::cout << t;

не проверял, тут не очень хороший, но зато простой и наглядный вариант

Добавлено:
все равно не работает

Код:
for (i=0; i<5; i++)
{
if (a[i]*a[i+1]>=0) t = false;

else t = true;}

значение t у вас полностью определяется последним элементом списка - вы его на каждой итерации вычисляете.

При вводе всех единиц выдает true,
вы там берете a[i+1], и при i равном 4 будет взят a[5] - но у вас массив всего из 5 элементов, вы вычисляете свое t из мусора, что хранится за массивом (скорее всего там большие отрицательные числа, поэтому в вашем случае при вводе всех единиц оно так и считало :)
 
Спасибо Вам огромное!!! Вы мне очень помогли :)
 
а пожалсто, заходите еще )
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab