1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 25
1

Вводится пятизначное число, нужно найти сумму его цифр и произведение цифр

13.02.2013, 17:05. Показов 17377. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста!!! Найти ошибку в коде. Очень нужно

Вот условие:
Вводится пятизначное число, нужно найти сумму его цифр и произведение цифр. Если сумма = произведению, вывести на экран.


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var n, s, p, dt, t, sot, des, ed: integer;
 
Begin
    Write ('n= '); Readln(n);
    if n>= 10000
       then begin
            dt:= n div 10000;
            t:= n div 1000;
            sot:= n div 100;
            des:= (n mod 100) div 10;
            ed:= n mod 10;
            s:=0;
            p:=1;
            s:= dt+t+sot+des+ed;
            p:= dt*t*sot*des*ed;
            end
 
       else Writeln('Это число не является 5-значным');
    if s=p
      then Writeln('s=p')
      else Writeln('s<>p');
Readln;
end.
Проблема в том, что некоторые числа вычисляются, а некоторые не вычисляются.

Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2013, 17:05
Ответы с готовыми решениями:

Дано пятизначное число. Найти сумму его цифр
Тема: Понятие цикла. Команда повторения с параметром. Задачи помогите плиз решить: 1)Дано...

Дано четырехзначное число. Найти: сумму его цифр; произведение его цифр
Дано четырехзначное число. Найти: а) сумму его цифр; б) произведение его цифр

С клавиатуры вводится число от 100 до 9999. Если число трехзначное, то найти произведение его цифр
С клавиатуры вводится число от 100 до 9999. Если число трехзначное, то найти произведение его цифр....

Дано элемент файла пятизначное целое число. Подсчитать сумму и произведение цифр, определить - является ли число палиндромом.
дано элемент файла пятищначное целое число. найти а) сложение цифр этого числа б)умножения цифр...

6
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
13.02.2013, 17:52 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Var
  n,s,p: Integer;
  i: Byte;
BEGIN
p:=1;
Write('Введите число: ');
Readln(n);
While n>0 do
begin
  i:=n mod 10;
  n:=n div 10;
  s:=s+i;
  p:=p*i;
end;
If s=p Then Writeln('Сумма(',s,')=Произведению(',p,')')
Else Writeln('Сумма(',s,')<>Произведению(',p,')');
END.
0
1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 25
13.02.2013, 18:07  [ТС] 3
Kodzaev, спасибо. Но я хочу найти в моём коде, ошибку. Где она?
0
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
13.02.2013, 18:13 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var n, s, p, dt, t, sot, des, ed: integer;
 
Begin
    Write ('n= '); Readln(n);
    if n>= 10000
       then begin
            dt:= n div 10000;
            t:= n div 1000 mod 10;
            sot:= n div 100 mod 10;
            des:= (n mod 100) div 10;
            ed:= n mod 10;
            s:=0;
            p:=1;
            s:= dt+t+sot+des+ed;
            p:= dt*t*sot*des*ed;
            end
 
       else Writeln('Это число не является 5-значным');
    if s=p
      then Writeln('s=p')
      else Writeln('s<>p');
Readln;
end.
0
1 / 1 / 1
Регистрация: 10.02.2013
Сообщений: 16
13.02.2013, 18:19 5
Подправил ваш код.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var n, s, p, dt, t, sot, des, ed: integer;
 
Begin
    Write ('n= '); Readln(n);
    if ((n>=10000) and (n<=99999))
       then begin
            dt:= n div 10000;
            t:= (n div 1000) mod 10;
            sot:= (n div 100) mod 10;
            des:= (n mod 100) div 10;
            ed:= n mod 10;
            s:= dt+t+sot+des+ed;
            p:= dt*t*sot*des*ed;
            end
       else Writeln('Это число не является 5-значным');
    if s=p
      then Writeln('s=p, n = ', n)
      else Writeln('s<>p');
Readln;
end.
Ошибка была в том, что Вы в строках 8 и 9 нашли не цифры числа.
И операции присваивания в строках 12 и 13 лишние.
И к тому же, если число шестизначное, то оно тоже не пятизначное, поэтому включил в условие проверку на это.
1
1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 25
13.02.2013, 18:29  [ТС] 6
Kodzaev, и у вас тоже такое. Я ввела, в исправленный вами код: 55555. Мне выдало "error 201" В чем проблема?
0
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
13.02.2013, 19:12 7
Ошибки никакой нету. Просто, если вы используете Турбо Паскаль, то число 55555 в тип Integer не влезает. Попробуйте переменную n объявить как Longint

Добавлено через 54 секунды

Не по теме:

Я использовал PascalABC

1
13.02.2013, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2013, 19:12
Помогаю со студенческими работами здесь

Если число четырёхзначное, то найти сумму его цифр, а если трёхзначное, то произведение цифр числа
С клавиатуры вводится целое число X из промежутка .если число четырёхзначное,то найти сумму его...

С клавиатуры вводится длинное целое число, не менее 50 цифр. Найти сумму цифр кратных трем
С клавиатуры вводится длинное целое число, не менее 50 цифр. Найти сумму цифр кратных трем. Pascal

Дано шестизначное число. Найти сумму его цифр, а также число, получаемое при прочтении его цифр справа налево
Дано шестизначное число. Найти сумму его цифр, а также число, получаемое при прочтении его цифр...

Дано пятизначное число Найти число, получаемое при прочтении его цифр справа налево
Дано пятизначное число. Найти число, получаемое при прочтении его цифр справа налево.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru