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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2009, 13:20   #1
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию Си. Задано натуральное число. В нем выделить максимальную по длине группу подряд идущих четных цифр

Помогите, пожалуйста, с задачей на С++. Задано натуральное число. В нем выделить максимальную по длине группу подряд идущих четных цифр.
Код:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand(time(0));
int q;
int y=0;
int sum=0;
int const n=10;
int a[n];
int b[n];
for(int i=0; i<n; i++)
cin>>a[i];
cout<<endl;
int t=0;
for(int i=0; i<n; i++)
if(a[i]%2==0)
{
b[t]=a[i];
t++;
}
int min=1;
for(int i=0; i<t; i++)
{
q=i;
if(b[i]<b[++q])
sum++;
else if(sum>min)
{
min=sum;
y=i;
sum=0;
}
}
while(min>=0)
{
cout<<b[y]<<endl;
y--;
min--;
}

system("pause");
}
В чем дело?

Последний раз редактировалось Stilet; 09.11.2009 в 10:30.
Veina вне форума Ответить с цитированием
Старый 09.11.2009, 10:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ну как минимум здесь
Цитата:
for(int i=0; i<n; i++)
cin>>a[i];
Я бы делал счет посимвольно :
Код:
for(int i=0; i<n; i++)
  a[i] = getch();
Но помоему эта задумка все равно "неаккуратна"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 11:15   #3
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию

ну а если и по этой задумке, все равно не работает. выдает одно и то же число. какой бы вы код предложили?
Veina вне форума Ответить с цитированием
Старый 09.11.2009, 12:04   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу предложить такое:
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

#include <tchar.h>
#include <conio.h>
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
  int k,c,mm=0,m=0;

  for (c=getch(),k=c; c!=13;c=getch()) { cout<<(char)c;
	if (c%2==0) {
		if (c==k) { m++;}
		else {
		 mm=(mm<m)?m:mm;
		 m=0;
		 k=c;
		}
	 }
  }

 cout<<'\n'<<++mm;
 system("PAUSE");
	return 0;
}
//---------------------------------------------------------------------------
Это Борланд Си.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2009, 13:55   #5
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию

а если в С++ ?

Люди, ну неужели никто не откликнется? ну помогите же, пожалуйста. Очень надо, очень прошу

Последний раз редактировалось Stilet; 23.11.2009 в 09:32.
Veina вне форума Ответить с цитированием
Старый 23.11.2009, 09:32   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так это и есть С++ только я в Борландовском компиляторе пишу.
Возьми основное и вставь в тот компилятор что ты используешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2009, 11:34   #7
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию

еще часто ошибка при запуске "Не удается найти указанный путь". Проект создаю все правильно. В чем дело....

все, запустила, но всегда один и тот же результат выдает, какое бы число не вводила. выдает: -858993460
-858993460
В чем проблема? Что исправить?

Последний раз редактировалось Stilet; 23.11.2009 в 12:28.
Veina вне форума Ответить с цитированием
Старый 23.11.2009, 12:29   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что исправить?
Откуда мы знаем? Ты же код свой не приводишь. А телепатов тут нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2009, 12:38   #9
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию

всмысле что я пытаюсь запустить этот код #pragma hdrstop

Код:
#include <tchar.h>
#include <conio.h>
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
  int k,c,mm=0,m=0;

  for (c=getch(),k=c; c!=13;c=getch()) { cout<<(char)c;
	if (c%2==0) {
		if (c==k) { m++;}
		else {
		 mm=(mm<m)?m:mm;
		 m=0;
		 k=c;
		}
	 }
  }

 cout<<'\n'<<++mm;
 system("PAUSE");
	return 0;
}
и такой результат получается. Вы его сами не проверяли?

я сама не программист и программирование не учу, но мне очень нужна эта задача на С++. помогите

Последний раз редактировалось Stilet; 23.11.2009 в 13:16.
Veina вне форума Ответить с цитированием
Старый 23.11.2009, 13:39   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Проверял конечно.
вот немного переделал и добавил вывод того блока цифр который нужно:
Код:
#include <tchar.h>
#include <conio.h>
#include <iostream.h>
//---------------------------------------------------------------------------
int main()
{
  int l,e,k,c,mm=0,m=0;

  for (c=getch(),k=c; c!=13;c=getch()) {
   cout<<(char)c;
   if ((c-'0')%2!=0) {
	continue;
   }
   if (k==c) {
	mm++;l=c;
   } else {
	if (m<mm) {m=mm;e=l;}
	k=c;
   }
  }

 cout<<'\n';
 for (int i = 0; i < mm; i++) {
  cout<<(char)(e);
 }
 cout<<'\n'<<++mm<<'\n';
 system("PAUSE");
	return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача о шести подряд идущих единицах. llTibegll Помощь студентам 11 06.11.2009 10:04
Массив чисел (найти 4 идущих подряд чётных числа) SeregaKo Общие вопросы Delphi 2 18.05.2009 23:09
Pascal - Задано число n неизвестной разрядности. Вычислить сколько цифр в этом числе Виолетта Помощь студентам 2 18.03.2009 07:17
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48
найти подпоследовательность из подряд идущих элементов с наибольшей суммой на С++ aj_tramp Помощь студентам 2 12.12.2008 08:57