Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поможите, люди добры, плз, решить задачу по С++

9.2K
01 декабря 2004 года
durak
2 / / 01.12.2004
задача: В одномерном целочисленном массиве найти все максимальные по длине серии идущих подряд элементов одиаковой четности. Напечатать номера, с которых начинаются эти серии. Массив можно пройти два раза
9.2K
01 декабря 2004 года
durak
2 / / 01.12.2004
всё, решил
301
01 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by durak
всё, решил


А у меня только один проход по массиву делается.

Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define even(a,b) (((int)a)&0x1)==(((int)b)&0x1)
#define MAX 10
int arr[MAX];

void series(int *parr)
{
 int mas[MAX],*pmas,mx=1,cmx=1,begin=0;
 for(int i=1;i<MAX;i++)
 {
  if(even(parr,parr[i-1]))cmx++;
  else
   if(cmx>mx)
   {
    pmas=mas;
    mx=cmx;
    cmx=1;
    *pmas=begin;
    begin=i;
    pmas++;
   }
   else if(cmx==mx)cmx=1,*pmas=i;
 }
 for(;pmas>mas; )printf("%d ",*--pmas);
 printf("\n");
}

void main()
{
 int *parr;
 clrscr();
 randomize();
 parr=arr;
 while(parr<arr+MAX)*parr=random(MAX),printf("%d ",*parr++);
 printf("\n");
 series(arr);
 getch();
}

Кинь тоже свой вариант.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог