Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 14:25   #1
grek23rus
 
Регистрация: 27.06.2011
Сообщений: 7
По умолчанию Помогитe с программой

Будьте так добры,помогите с программой,почему она не работает,заранее спасибо!

/* Задан целочисленный массив с N элементами. Разработать алгоритм определения количества пар соседних элементов массива,в который первый элемент больше второго,причём второй-нечётен. */

Код:
#include <iostream>

using namespace std;

int main()
{
   int n,s;
   cout << "input n: ";
   cin >> n;
   int a[n];

   cout << "input array:\n";
   for(int i=0; i<n; i++)
       cin >> a[i];

   for(int i=0; i<(n-1); i++)
   {
           if ((a[i-1]>>a[i+1])&&(a[i+1]%2==1))
           {
           s=+1;
           }
   }
       cout << s << " "; 
       
   system("PAUSE");
   return EXIT_SUCCESS;
}
grek23rus вне форума Ответить с цитированием
Старый 27.06.2011, 14:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(a[i-1]>>a[i+1]
Это сдвиг? Может нужен один знак >?
Цитата:
int a[n];
Хм... ИМХО єто не каждому компилятору понравится...
Цитата:
почему она не работает
А в чем это проявляется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2011, 14:31   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
if ((a[i-1]>>a[i+1])&&(a[i+1]%2==1))
Одна ">" -- лишняя.
Да и по логике, сравнение должно быть
Код:
(a[i] > a[i+1])
сравнивать-то надо соседние элементы, а не через один...
Кроме того, счетчик s не инициализируется. Надо
Код:
s = 0;
Ну и совсем по-хорошему надо бы использовать динамический массив, если компилятор старый.

Update

Опять опоздал -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 27.06.2011 в 14:33.
Mandrivnyk вне форума Ответить с цитированием
Старый 27.06.2011, 15:40   #4
grek23rus
 
Регистрация: 27.06.2011
Сообщений: 7
По умолчанию

Неверное решение показывает. Когда ввожу 5 4 3 2 1,должно 2 выводить,а он мне 1 показывает. В этом и вопрос.Почему?
grek23rus вне форума Ответить с цитированием
Старый 27.06.2011, 16:12   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от grek23rus Посмотреть сообщение
Неверное решение показывает. Когда ввожу 5 4 3 2 1,должно 2 выводить,а он мне 1 показывает. В этом и вопрос.Почему?
Внимательно почитай ответы выше.
Только что проверил код с указанными исправлениями -- все работает.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 27.06.2011, 17:04   #6
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от grek23rus Посмотреть сообщение
он мне 1 показывает. В этом и вопрос.Почему?
Цитата:
Сообщение от grek23rus Посмотреть сообщение
Код:
s=+1;
Потому что это операция присвоения. Запись в s положительной единицы. Операция сложения и присвоения вот такая:
Код:
s+=1;
An1ka вне форума Ответить с цитированием
Старый 27.06.2011, 17:13   #7
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
s+=1;
Или вообще
Код:
s++;
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 27.06.2011, 18:03   #8
grek23rus
 
Регистрация: 27.06.2011
Сообщений: 7
По умолчанию

Во блин!!! ТОЧНО! Заработало... Всем огромнейшее спасибо!!!!!!
grek23rus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогитe блок вложенных циклов(Pascal) заменить case в C++ khorolpavel Общие вопросы C/C++ 8 20.02.2011 16:38
Помогитe простейшую процедуру из Паскаля переделать в C++ khorolpavel Общие вопросы C/C++ 4 20.02.2011 15:59
datapicker помогитe подключить Gennadiy JavaScript, Ajax 0 17.01.2011 14:43
помогитe с кодом [Delphi] Ghennadiy Помощь студентам 7 08.12.2010 01:31
Помогите с программой Panda Помощь студентам 4 07.07.2008 18:13