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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 15:44   #1
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию [C] Серии в массиве.

Всем доброе время суток. Вот такая задача:
Цитата:
Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке возрастания их длины.
Я решил ее делать так. Создать дополнительный массив sr[i]=k, где i - количество серий, k - количество элементов в серии. Я это реализовал, однако как дальше делать я не знаю..

Код:
#include <stdio.h>

int main(int argc, char *argv[])
{   
    int arr[50],sr[50],n;
    scanf ("%d", &n);
    for (int i=0; i<n; i++)
		scanf ("%d", &arr[i]);
    sr[0]=1; int z=0;
    for (int i=0,j=0; i<n; i++)
		{
		if (arr[i]==arr[i+1])
		{ 
			sr[j]++;
			
			}
		else 
		{
			j++;
			sr[j]=1;
			z++;
			}
}

 for (int j=0; j<z; j++)
		printf ("%d ", sr[j]);
    
    return 0;
}
decantnik вне форума Ответить с цитированием
Старый 06.12.2011, 16:08   #2
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию

Мне бы идею кто подкинул как это делать..
decantnik вне форума Ответить с цитированием
Старый 06.12.2011, 16:20   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

А если так?
s[i] = k
i -- номер первого элемента серии
k -- длина серии (если 0, значит, элемент не стартовый в серии)

и потом все переписывается в третий массив, равный по размерности исходному.
Или надо без дополнительных массивов?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 06.12.2011, 16:27   #4
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию

Постойте, вы предлагаете использовать индекс как номер? Так если массив исходный будет такой

1000 1000 5241 5120 5120

То получается элементы s[0..998] = 0 ?
decantnik вне форума Ответить с цитированием
Старый 06.12.2011, 22:57   #5
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию

апну еще разок
decantnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Серии и массивы... stydent1991 Паскаль, Turbo Pascal, PascalABC.NET 2 14.06.2010 21:05
Нахождение серии в массиве akialex Помощь студентам 5 25.11.2009 18:28
Серии в массиве, помогите разобраться в задаче RomT24 Помощь студентам 7 14.01.2009 03:27
Серии в массиве, задача, помогите разобраться! RomT24 Паскаль, Turbo Pascal, PascalABC.NET 1 11.01.2009 20:32