Даны два трехзначных числа.Найти сумму цифр этих чисел,если сумма является двузначным...

0 голосов
31 просмотров

Даны два трехзначных числа.Найти сумму цифр этих чисел,если сумма является двузначным числом,то найти произведение этих чисел,в противном случаи найти разность этих чисел.
В ПАСКАЛЕ


Информатика (84 баллов) | 31 просмотров
Дано ответов: 2
0 голосов

Var 
a,b,asum,bsum,sum:integer;
Begin 
Write('Введите два трёхзначных числа: '); 
Readln(a,b); 
if (abs(a)<100) or (abs(a)>999) or (abs(b)<100) or (abs(b)>999) then write('Несоблюдено условие ввода') else
Begin 
asum:=a mod 10 + a div 10 mod 10 + a div 100; 
bsum:=b mod 10 + b div 10 mod 10 + b div 100; 
sum:=asum+bsum; 
if (sum>9) and (sum<100) then write('Произведение этих чисел равно ',a*b) else write('Разность этих чисел равна ',a-b);  <br>End;
End.  

(2.6k баллов)
0

А если числа трехзначные, но отрицательные?

0

Программа не поддерживает трехзначные отрицательные

0

Вроде поддерживает

0

Введите -999 и -888 и получите разность, а должно быть произведение

0

Так как сумма цифр = 51 и число явно двузначное

0

После строчки readln Надо вставить две строчки a:=abs(a); b:=abs(b) И в остальных местах убрать abs

0 голосов

Var
  x,x1,x2,s: integer;
begin
  write('Введите x1:');readln(x1);
  write('Введите x2:');readln(x2);
  //ищем сумму цифр этих чисел
  x:=x1 div 100; s:=s+x;
  x:=x2 div 100; s:=s+x;
  x:=x1 div 10 mod 10; s:=s+x;
  x:=x2 div 10 mod 10; s:=s+x;
  x:=x1 mod 10; s:=s+x;
  x:=x2 mod 10; s:=s+x;
  s:=abs(s);
  //Теперь в s сумма цифр введенных x1 и x2
  writeln('Сумма цифр ',x1,' и ', x2,' = ',s);
  if (s>9) and (s<100) then writeln('Произведение чисел =',x1*x2)<br>    else writeln('Разность чисел = ',x1-x2);
end.

Тест №1

Введите x1:-999
Введите x2:-888
Сумма цифр -999 и -888 = 51
Произведение чисел =887112

Тест №2
Введите x1:111
Введите x2:222
Сумма цифр 111 и 222 = 9
Разность чисел = -111


(13.9k баллов)
0

А если числа трехзначные, но отрицательные?