В паскале я написал программу что бы 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;)
Проблема в том, что переменная "a" в вашем коде складывает число "x" три раза, а не разбивает число на единицы, десятки и сотни. Для того чтобы исправить программу и перемножить только единицы, десятки и сотни, вам нужно внести изменения в переменные "a" и "b".
Исправленный код будет выглядеть следующим образом:
Program qq; Var x: integer; a, b: integer; Begin Readln(x); Writeln('Разряд единиц: ', x mod 10); Writeln('Разряд десятков: ', x mod 100 div 10); Writeln('Разряд сотен: ', x div 100); a := (x mod 10) * (x mod 100 div 10) * (x div 100); b := (x mod 10) * (x mod 100 div 10) * (x div 100); Writeln('Произведение = ',a); End.
Теперь переменная "a" будет хранить произведение единиц, десятков и сотен заданного числа "x".
Проблема в том, что переменная "a" в вашем коде складывает число "x" три раза, а не разбивает число на единицы, десятки и сотни. Для того чтобы исправить программу и перемножить только единицы, десятки и сотни, вам нужно внести изменения в переменные "a" и "b".
Исправленный код будет выглядеть следующим образом:
Program qq;Var
x: integer;
a, b: integer;
Begin
Readln(x);
Writeln('Разряд единиц: ', x mod 10);
Writeln('Разряд десятков: ', x mod 100 div 10);
Writeln('Разряд сотен: ', x div 100);
a := (x mod 10) * (x mod 100 div 10) * (x div 100);
b := (x mod 10) * (x mod 100 div 10) * (x div 100);
Writeln('Произведение = ',a);
End.
Теперь переменная "a" будет хранить произведение единиц, десятков и сотен заданного числа "x".