Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892

Подсчет подряд идущих нулей.

22.11.2009, 16:38. Показов 3842. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
"Дан целочисленный массив А[N]. Определить наибольшее количество подряд идущих нулей."

Сразу оговорюсь, что был бы благодарен, если бы Вы не писали код.
Т.к. таким образом я наврежу сам себе, ибо будет пробел.

Я так понимаю, что сначала надо объявить интовский массив, и при каждом вводе проверять его на равенство нулю, если равен то прибавлять к количеству нулей, причем на каждое начало ввода нулей должен быть отдельный цикл.
Но это же придется заводить много переменных.
Видимо, я где-то что-то не так понял.
Пожалуйста, опишите алгоритм выполнения поставленной задачи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2009, 16:38
Ответы с готовыми решениями:

Определить количество в наиболее длинной последовательности из подряд идущих нулей
Дана последовательность из 100 ццелых чисел. Определить количество в наиболее длинной последовательности из подряд идущих нулей.

Проверка подряд идущих символов
Нужна помощь! Есть такой код. Произвожу проверка подряд идущих символов. Допустим есть "AAAAA23sfdweFF" Он считает 4...

Массив чисел представлен группами одинаковых элементов, идущих подряд
Дано натуральное число n, целые числа а0, а1,..,аn. Массив чисел представлен группами одинаковых элементов, идущих подряд. Кроме этого...

8
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
22.11.2009, 16:51
Кажись так=)
Я просто не проверял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int k=0;
int max=0;
for(int i=0;i<=n;i++) //начинае цикл
{
if  (A[i]==0)  k=k+1; // если 0 то добавляем до колва нулей
   else {
          if (k>max) max=k; // если не 0 то сравниваем посчитанное колво нулей(ведь их повтор получаеться закончился) с максимальным значением
          k=0;//обнуляем счетчик
         }
// вот это нада добавить если малоли последним элементом будет 0
if (i==n) {
       if (A[i]==0)  {k=k+1;if (k>max) max=k;}
     }
}
max наибольшее количество подряд идущих нулей
0
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
22.11.2009, 16:58  [ТС]
Falen,
а n что за переменная?
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
22.11.2009, 17:02
n кол-во элементов в массиве A[N] ,т.е. n это N
Ток я не проверял то что написал=) с мобилки сижу, компа под рукой нема=)

Добавлено через 2 минуты
То к это
C++
1
2
3
if (i==n) {
       if (A[i]==0)  {k=k+1;if (k>max) max=k;}
     }
исправь на это
C++
1
2
3
if (i==n) {
       if (A[i]==0)  if (k>max) max=k;
     }
0
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
22.11.2009, 17:36  [ТС]
Переписывал сам, с нуля - голову сломал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
void main()
{
int max=0,k=0,n=0;;
char A[5];
  for (int j=0; j<=4; j++)
    {
      cin>>A[n];
        if (n==0) k++;
    }
  cout<<k;
}
Тут код покореженный и n для удобства изначально равна 5.
Он не хочет проверять это условие
C++
1
 if (n==0) k++;
и в любом случае прибавляет к k единицу, даже если n !=0.
В чем проблема?

Если я ставлю A[n] - игнорирует
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
22.11.2009, 18:35
Вот 2 раз пишу вам код!
Пример 14 элементов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int n=14;
int A[14]={1,1,2,3,0,3,0,7,8,0,2,2,0,1}; // объявляем массив
int k=0;  //счетчик на 0
int max=0; 
for(int i=0;i<=n;i++) //начинаем цикл
{
if  (A[i]==0)  k=k+1;  // если элемент равен 0, тогда увеличиваем счетчик на 1
   else {         // если нет...
          if (k>max) max=k;   //тогда проверям колво посчитаных подряд нулей(так как элемент уже не равен нулю, то перечисления нулей прерваны)
          k=0;//счетчик на ноль
         }
//проверяем последний символ
if (i==n) {
       if (A[i]==0)  if (k>max) max=k;
     }
}
Только что проверил код и все работает!
1
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
22.11.2009, 18:49  [ТС]
Вот теперь заработало. Немного подкорректировал.
Спасибо большое!
А как насчет вот этого?
"Дан целочисленный массив А[N][М]. Сформировать одномерный массив В[М] из произведений положительных элементов соответствующих столбцов массива А."
Опишите для начала алгоритм
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
23.11.2009, 07:04
обходим массив A по столбцам;
при этом каждый столбец обходим по-строчно;
при этом во время обходя каждого столбца в переменной накапливаем произведение обнаруженных положительных элементов и по достижению конца столбца заносим данное произведение в соответствующий элемент одномерного массива B.

легче стало?)
0
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
23.11.2009, 09:19  [ТС]
AntonChik, Действительно стало!
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2009, 09:19
Помогаю со студенческими работами здесь

Подсчитать самую длинную последовательность подряд идущих букв в строке
Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а (помогите пожалуйста) void __fastcall...

Замены всех групп подряд встречающихся нулей на один нуль
Помогите, пожалуйста, кто сможет. Дан одномерный массив из n целых чисел. Составить программу замены всех групп подряд встречающихся...

Циклы: подсчет количества нулей в двоичной записи данного числа
Есть задание: &quot;Дано натуральное число n. Посчитайте количество нулей в двоичной записи этого числа.&quot; Нужно выполнять строго с...

Имеется строка, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд.
Имеется строка, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд. ...

Удаление двух подряд идущих элементов односвязного списка
Всем привет! Нужно создать метод шаблонного класса List, который бы удалял 2 подряд идущих элемента.(именно как метод класса). Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru