М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
айка397
айка397
28.03.2021 11:12 •  Информатика

Язык с++. запрашиваем у пользователя неопределенное количество целых чисел пока не введёт значение = 0 посчитать количество элементов введенных пользователем кратных 5, а также вывести номер первого элемента, введенного пользователем значения = 5. ноль не учитывается (если 5 нет, то номер = 0) использовать do, while

👇
Ответ:
bnhgj4p08xdt
bnhgj4p08xdt
28.03.2021
#include <iostream>
using namespace std;

/* Язык С++.
 * Запрашиваем у пользователя неопределенное количество целых чисел
 * пока не введёт значение = 0
 * посчитать количество элементов введенных пользователем кратных 5,
 * а также вывести номер первого элемента, введенного пользователем значения = 5.
 * Ноль не учитывается (если 5 нет, то номер = 0)
 * Использовать do, while
 */
int main()
{
    int n, c5 = 0, i = 1, i5 = 0;
    bool found5 = false;
    do {
        cout << "Число: ";
        cin >> n;
        if (n == 0) break;
        else if (n % 5 == 0) {
            c5++;
            if (i5 == 0) {
                i5 = i;
            }
        }
        i++;
    } while (true);
    cout << "Количество чисел, кратных 5: " << c5 << endl;
    cout << "Номер первого элемента, кратного 5: " << i5 << endl;
    return 0;
}
4,7(64 оценок)
Открыть все ответы
Ответ:
Люсик20
Люсик20
28.03.2021

Вычитаем первое число из второго.

Если результат отрицательный, то первое меньше второго.

Если нулевой, то они равны.

Если положительный, то первое больше второго.

Найдем разность между первым и вторым значением: c=a-b

Все что нам требуется сделать, это выяснить, является ли с положительным числом.

Например, используя функцию сигнум, можно получить вариант функции Хевисайда, которая будет принимать значение 1 только для положительных значений, а во всех остальных случаях обращаться в ноль. f(c)=[(sgn(c)+1/)2]

В нашем случае можно записать, что max(a,b)=a*f(c)+b*f(-c)

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

Конечно, данный алгоритм реализуем при условии наличия встроенной функции сигнум (она присутствует даже в старом Бейсике ). Но даже если такой встроенной функции нет, ее написание не составит большого труда.

4,5(39 оценок)
Ответ:
warfacepolina2
warfacepolina2
28.03.2021
Вот вариант программы с трассировкой

program test;

var
  n,k,m:integer;

begin
  repeat
    Writeln('*** очередной проход по циклу REPEAT');
    Write('Введите натуральное число n: ');
    Readln(n);
    Writeln('*** введено ',n)
  until n>0;
  Writeln('*** вышли из REPEAT по условию ',n,' > 0 = ',n>0);
  m:=n;
  k:=10;
  Writeln('*** m=',m,', k=',k);
  Writeln ('*** проверка входа в цикл WHILE с условием ',m,' div 10<>0 = ',
      m div 10<>0);
  while m div 10<>0 do begin
    Writeln ('*** проход по циклу WHILE с условием ',m,' div 10<>0 = ',
        m div 10<>0);
    k:=k*10;
    m:=m div 10;
    Writeln('*** m=',m,', k=',k);
    end;
  Writeln('*** Цикл WHILE завершен');
  m:=(2*k+n)*10+2;
  Writeln('Число с двойками = ',m);
end.

Нужно составить трасеровочную таблицу , отладить эту программу . программа работает. выдаёт правильн
4,6(95 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ