в паскале я написал программу что бы 3 значное число разбилось на единицы, десятки и сотни, а потом написал что бы эти 3 цифры перемножились, а он перемножает не только эти 3 цифры, но и цифры 10 и 100 которые я использовал что бы разбить число на десятки сотни и единицы, как исправить? (вот если что program qq;
Var
x: integer;
a,b:real;
begin
readln(x);
writeln('Разряд единиц: ', x mod 10);
writeln('Разряд десятков: ', x mod 100 div 10);
writeln('Разряд сотен: ', x div 100);
a:=x+x+x;
b:=x*x*x;
writeln ('сумма = ',a);
writeln ('произведение = ',b);
end;)
Ответы
Ответ дал:
0
Ты просто вывел на экран разряды, но никуда их не записал. Поэтому переменная x по прежнему хранит все число. Из за этого ты просто производил действия сложения и умножения с одним и тем же числом.
Что бы все заработало присвой каким-нибудь переменным, значения которые ты выводил, и проводи действия уже над ними.
Что бы все заработало присвой каким-нибудь переменным, значения которые ты выводил, и проводи действия уже над ними.
Ответ дал:
0
Вот рабочая программа:
var
x,a,b,c,proiz,sum:integer;
begin
WriteLn('Введите 3-ех значное число');read(x);
a:=x mod 10;
b:= (x div 10) mod 10;
c:=x div 100;
sum:=a+b+c;
proiz:=a*b*c;
WriteLn('Произведение разрядов=', proiz);
WriteLn('Сумма разрядов=', sum);
end.
var
x,a,b,c,proiz,sum:integer;
begin
WriteLn('Введите 3-ех значное число');read(x);
a:=x mod 10;
b:= (x div 10) mod 10;
c:=x div 100;
sum:=a+b+c;
proiz:=a*b*c;
WriteLn('Произведение разрядов=', proiz);
WriteLn('Сумма разрядов=', sum);
end.
Вас заинтересует
1 год назад
2 года назад
8 лет назад
8 лет назад
8 лет назад