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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2021, 15:35   #1
Vlados123
Новичок
Джуниор
 
Регистрация: 23.08.2021
Сообщений: 6
По умолчанию Код с++ Нужно создать ряд чисел

Я только начал изучать с++ и у меня есть вопрос. Как я могу сделать так чтобы я вводил числа поочередно и когда нажму 0 числа должны перестать вводиться. Извините если не понятно.
Изображения
Тип файла: png 3211243124.png (24.5 Кб, 30 просмотров)
Vlados123 вне форума Ответить с цитированием
Старый 25.08.2021, 17:05   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Например:
Код:
int i;
while (true) {
    cin >> i;
    if (!i) break;
    cout << i;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.08.2021, 17:12   #3
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Всё понятно. Только по заданию не когда нажмёте <0>, а когда введёте 0:
Код:
#include <iostream>
int main()
{
 unsigned int n=0;
 int x;
 int s=0;
 do
 {
  std::cin>>x;
  ++n;
  s+=x;
 }
 return 0;
}
По-Вашему же надо обрабатывать клавиатурные события. А если я хочу ввести 102? Кнопку <0> для этого надо нажать. И Ваш вариант двойки уже не дождётся. И если бы не задание, то Ваш «текст» даже не читался бы.

Последний раз редактировалось taras-proger77; 25.08.2021 в 17:17.
taras-proger77 вне форума Ответить с цитированием
Старый 25.08.2021, 20:04   #4
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Благородные Доны.
Вы коль уж взялись помогать лентяю, так делайте по ТЗ )
Нужен ведь не только ввод данных.
Получится примерно так:
Код:
#include <iostream>

int main()
{
    int val(1), count(0);
    float sum(0);
    
    while (val != 0 )
    {
        std::cout << "Enter value\n";
        std::cin >> val;
	count++;
        sum = sum + val;
    }
    count = count - 1;
    std::cout << "Result\n";
    std::cout << count << std::endl;
    std::cout << sum / count;
    return 0;
}
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 25.08.2021, 20:15   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Desc, лично я отвечал только на сам вопрос про ввод до нуля, а то ТСу делать уже ничего не останется
Ваш вариант еще можно так записать:
Код:
...
    int val, count(-1);
    float sum(0);

    do {
        std::cout << "Enter value" << std::endl;
        std::cin >> val;
	count++;
        sum += val;
    } while (val);

    std::cout << "Result" << std::endl;
...
Еще посоветую Vlados123 добавить проверку на ноль перед нахождением среднего.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.08.2021, 20:22   #6
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Согласен, так более компактно.
Но есть вероятность что ТС не поймет такое сокращение.

P. S.
Цитата:
Сообщение от BDA Посмотреть сообщение
Еще посоветую Vlados123 добавить проверку на ноль перед нахождением среднего.
Не обязательно.
Начальный count == -1, так что деление на "0" исключается.

P. P. S.
Я вот об этом: count = count - 1;
При нулевом значении перед вычислением count будет присвоено "-1"
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 25.08.2021 в 20:35. Причина: Добавил P. S. + P. P. S.
Desc вне форума Ответить с цитированием
Старый 26.08.2021, 15:40   #7
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
а то ТСу делать уже ничего не останется
Так он и не хочет.
taras-proger77 вне форума Ответить с цитированием
Старый 26.08.2021, 16:08   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Desc, тело do-while выполнится хотя бы раз, так что count станет равно 0, если начать ввод с нуля.
taras-proger77, не считаю, что не хочет. Вопрос был по части задания, а не "сделайте всё за меня", как часто бывает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.08.2021, 13:05   #9
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Если добавить проверку на "0", тогда решение не совсем по условию получится.
На мой взгляд безобидный вариант при использовании do добавить еще условие:
Код:
 if ( count == 0 )
 (
      count++
 }
Кстати это условие не помешает в варианте безdo. Для случая когда будет введено только одно значение равное "0".
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 27.08.2021, 18:07   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
тогда решение не совсем по условию получится.
Да в текущем условии просто не оговаривается, что делать при последовательности нулевой длины. Не уверен, что и среднее определено для такой последовательности. Если это задача для начала обучения на изучение циклов, то приписки, что длина последовательности гарантировано больше нуля, хватило бы, чтобы не городить проверки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно последовательно ввести список целых чисел, код не работает. В чем ошибка? smi Python 3 04.07.2019 17:28
Помогите пожалуйста . Нужно сделать проверку (выходит ли введенный код в массив или нет, если нет то нужно заново запросить ввести код) Smile189 Общие вопросы Delphi 0 23.10.2016 20:56
Ряд чисел Фибоначчи Аля:-) Помощь студентам 6 11.11.2011 22:40
Натуральный ряд чисел Yunut Общие вопросы C/C++ 0 07.12.2010 21:16