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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2010, 18:59   #1
Ovt
Новичок
Джуниор
 
Аватар для Ovt
 
Регистрация: 03.12.2010
Сообщений: 1
Печаль Работа с массивами

необходимо Подсчитать количество пар соседних элементов с одинаковыми значениями

размерность массива 200
диапозон значений -50-50



Пример как она должна выглядеть

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int Ar[100]; /* массив, который обрабатывается */

int main(void) {
int i, j; /* индексы в массиве */
int av; /* среднее значение */
int nn; /* количество эл-тов в последовательности */
int ib; /* индекс начала последовательности */

randomize(); /* инициализация rand */
/* заполнение массива случайными числами */
for (i=0; i<100; Ar[i++]=random(101)-50 );
/* вывод начального массива */
printf("Начальный массив:\n");
for (i=0; i<100; printf("%3d ",Ar[i++]));
putchar('\n');
putchar('\n');

for (nn=i=0; i<100; i++) { /* перебор массива */
if (Ar[i]<0)
/* обработка отрицательного элемента */
if (!nn) {
/* начало последовательности */
/* запомнить индекс начала,
начальное значение накопителя суммы
и счетчика элементов */
ib=i; av=Ar[i]; nn=1;
}
else {
/* накопление суммы,
подсчет количества */
av+=Ar[i]; nn++;
}
/* конец обработки отрицательного элемента */
else /* обработка положительного элемента */
if (nn) {
/* если есть необработанная
отрицательная последовательность */
av/=nn; /* усреднение */
/* перебор всей последовательности
с ограничением */
for (j=ib; j<i; j++)
if (Ar[j]>av) Ar[j]=av;
nn=0; /* последовательность обработана */
} /* конец если есть необработанная... */
} /* конец перебор массива */
if (nn) /* если не обработана последняя
отрицательная последовательность */
for (av/=nn, j=ib; j<i; j++)
if (Ar[j]>av) Ar[j]=av;
/* вывод результатов */
printf("Массив-результат:\n");
for (i=0; i<100; printf("%3d ",Ar[i++]));
putchar('\n');

return 0;
}

Помогите пожалуйста а то ничего не выходит
Ovt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами anton1911 Паскаль, Turbo Pascal, PascalABC.NET 0 09.09.2010 19:17
Работа с массивами GaSST Microsoft Office Excel 5 24.03.2010 05:12
Работа с массивами в С++ verpl Помощь студентам 2 15.12.2009 14:45
работа с массивами Андрей.12 Помощь студентам 0 19.10.2009 14:18