• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Как посчитать количество цифр 5 в числе?

  • Автор темы Автор темы @lis@
  • Дата начала Дата начала

@lis@

Ученик
Регистрация
30 Мар 2011
Сообщения
6
Реакции
0
Баллы
0
Как посчитать количество цифр 5 в числе?

Помогите пожалуйста решить задачу.
Я написала программу, но она не работает:
var a,x,y,z,m:integer;
begin
write ('Введите число: ');
read(a);
x:=a;
z:=0;
repeat
y := x mod 10;
if y=5 then
z:=z+1;
m:=y div 10
until m=0;
write('Количество цифр 5: ', z)
end.
Какое число бы я не вводила, получается 0.
 
не уверен, что правильно, но попробуйте изменить так :

var a,x,y,z,m,b:integer;
begin
write ('Введите число: ');
read(a);
x:=a;
z:=0;
repeat
y := x mod 10;
if y=5 then
b:=z+1;
m:=y div 10
until m=0;
write('Количество цифр 5: ', b)
end.

мне показалось, что z ссылается на саму себя
 
Код:
var a,x,y,z,m:integer;
begin
  write ('Введите число: ');
  read(a);
  x:=a;
  z:=0;
    repeat
      x:= x div 10;
    if x=5 then
      z:=z+1;
    x:=x mod 10
    until x=0;
    write('Количество цифр 5: ', z)
end.
вроде так. надо проверить...
 
Попробовала оба варианта, всё также получается в ответе 0
 
перепутал div и mod ...
 
Ну, коллеги - хвостом вас по голове - развели черт-те что на пустом месте.
Код:
var
 a:LongInt;
 z:Byte;
begin
 write ('Введите число: ');
 readln(a);
 z:=0;
 repeat
  if (a mod 10)=5 then z:=z+1;
  a:=a div 10
 until a=0;
 write('Количество цифр 5: ', z);
 readln;
end.
И всего делов-то!
 
А нельзя как-нибудь заменить LongInt и Byte? (нам можно только integer использовать)
 
А нельзя как-нибудь заменить LongInt и Byte? (нам можно только integer использовать)
Ну так на Integer обе переменных и замените! Просто диапазон получается уж очень куцый - всего до 32000. Хотелось числа подлиннее вводить. Но нельзя - значит нельзя!
 
Спасибо большое, всё работает!
 
Назад
Сверху