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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2024, 12:27   #1
Polyan
Новичок
Джуниор
 
Регистрация: 04.04.2024
Сообщений: 2
По умолчанию Последовательности

Здравствуйте!
Окончательно запуталась с последовательностями.
Тема методы векторов.
Есть условие
Пользователь вводит n последовательностей заканчивающихся нулем.
Ноль не является частью последовательности и простое число к.
Нужно найти сколько к.
пример ввода


Sample Input:

4
1 3 2 4 0
2 3 0
4 3 -2 4 6 -11 0
2 0
2

Sample Output:

3

Не могу понять как ввести эти последовательности.

Код:
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int main() {
  int size;
 cin >> size;

  vector<vector<int>> numbers(size);
  int row = 0;
  for (int x; cin >> x;) { // вот здесь не получается
      if (x == 0) {
          ++row;
      }
      else {
          numbers[row].push_back(x);
      }
Прошу объяснить. Ни один день разбираюсь
  }
  int k;
  cin >> k;
  int c = count(numbers.begin(), numbers.end(), k);

  cout << k;
    return 0;
}
Polyan вне форума Ответить с цитированием
Старый 04.04.2024, 17:21   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Нужно прервать цикл ввода, добавив if:
Код:
for (int x; cin >> x;) {
    if (x == 0) {
        ++row;
        if (row == size)
            break;
    }
    else {
        numbers[row].push_back(x);
    }
}
Или можно немного переделать циклы:
Код:
int x;
for (auto& v : numbers)
    for (cin >> x; x; cin >> x)
        v.push_back(x);
Проверить содержимое:
Код:
for (const auto& v : numbers) {
    for (const auto& n : v)
        cout << n << " ";
    cout << endl;
}
Если нужно найти просто количество k среди всех значений последовательностей, то:
Код:
int c = 0;
for (const auto& v : numbers)
    c += count(v.begin(), v.end(), k);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.04.2024 в 17:41.
BDA на форуме Ответить с цитированием
Старый 05.04.2024, 09:43   #3
Polyan
Новичок
Джуниор
 
Регистрация: 04.04.2024
Сообщений: 2
По умолчанию

Спасибо Вам огромное за помощь!
Получается!!!
Polyan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите программу, которая в последовательности целых чисел определяет их сумму и подсчитывает разность количества положительных и отрицательных чисел последовательности. roma1808 C# (си шарп) 0 08.05.2018 23:33
с++ Вводится последовательность ненулевых чисел,0-конец последовательности, определить наибольшее число в последовательности ЮськаЮськовна Помощь студентам 3 10.11.2015 15:20
Если число x встречается в последовательности, упорядочить по невозрастанию часть последовательности (Паскаль) димон4ик_ Помощь студентам 1 17.10.2011 23:00
Определить:формат последовательности параметров & способ размещения последовательности переменных DenSyntax Помощь студентам 0 22.06.2010 17:26
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. Med Помощь студентам 1 20.03.2009 11:40