Страница 1 из 1
Задача на последовательность цифр в массиве
Добавлено: 17 ноя 2014, 15:08
iesha
помогите пожалуйста
дан одномерный массив с размерностью 20. надо узнать если в нем последовательности из одинаковых цифр, сколько их и какие?
Re: массив, язык си
Добавлено: 18 ноя 2014, 12:22
Romeo
Готов помогать, но не делать за тебя. Что именно не получается? Выкладывай свои попытки и жалуйся.
Re: Задача на последовательность цифр в массиве
Добавлено: 21 ноя 2014, 23:37
iesha
вот наработки
Код: Выделить всё
int random (int N)
{return rand() %N;}
int main(int argc, char *argv[]) {
const int N=20;
int arr1[N], i, j;
for (i=0; i<N; i++){
arr1[i]=random(9)+1;
printf ("%d", arr1[i]);
}
for (i=0; j<N-3; i++) {
if (arr1[i]==arr1[i+1] && arr1[i+1]==arr1[i+2])
printf ("%d\n", arr1[i]);
else printf("Odinakovix cifr net\n");
}
system("pause");
return 0;
}
Re: Задача на последовательность цифр в массиве
Добавлено: 26 ноя 2014, 19:03
Romeo
Здесь ты просто ищешь тройки расположенных подряд цифр. Задание несколько иначе выглядит. Нужно найти последовательности произвольной длины. Предлагаю следующий подход:
- Используем следующие переменные: индекс текущего элемента, длина текущей последовательности.
- В начале индексу текущего элемента присваиваем 1, длине текущей последовательности 1.
1. Бежим по массиву (индекс текущего элемента инкрементируется)
2. Если текущий элемент и значение предыдущего равны, то увеличаем длину текущей последовательности на 1.
3. Если текущий элемент и значение предыдущего НЕ равны и длина текущей последовательности больше 1, тогда:
3.1. Значит мы нашли конец реальной последовательности, так что пишем пользователю: Найдена последовательности из символов (указываем значение предыдушего символа) длиной (указываем значение переменной, хранящей текущую длину).
3.2. Сбрасываем значение переменной, хранящей текущую длину последовательности в 1.
4. Конец цикла.
Алгоритм можно доработать, если требуется посчитать последовательности (для этого нужно ввести ещё одну переменную). Оставляю это в качестве самостоятельной работы.