Вопрос задан 20.07.2023 в 22:33. Предмет Информатика. Спрашивает Кушнарева Елизавета.

Дано трехзначное число. Вычислить сумму больших цифр этого числа. На паскале. У меня есть одна

мысль, но так и не могу понять, где ошибка. program work; var x,y,z,a:integer; begin writeln('введи трехзначное число'); readln(a); x:=a div 100; y:=a div 10 mod 100; z:=a mod 10; if (x>y) then if (y>z) then a:=x+y else a:=x+z else if (x>z) then a:=x+y else a:=y+z; writeln(a); end. ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Осина Зоя.

Ответ:

Объяснение: попробуйте вместо ввода трехзначного числа с последующей разбивкой его по разрядам ввести три разных числа а1,а2,а3 последовательно если принципиально что бы они отображались на экране добавьте еще переменную b например и пропечатайте ее b:=a1*100+a2*10+a3 writeln(b) а так в условных операторах у вас по моему ошибок нет

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа, которую вы предоставили, вычисляет сумму двух наибольших цифр трехзначного числа. Однако она содержит ошибку, из-за которой результат может быть неверным. Попробуем разобраться в проблеме.

Давайте рассмотрим следующий пример:

Пусть введенное трехзначное число равно 532.

  • Вычисление переменных x, y, z: x := a div 100; // x = 532 div 100 = 5 y := a div 10 mod 100; // y = 532 div 10 mod 100 = 53 mod 100 = 53 z := a mod 10; // z = 532 mod 10 = 2

  • Запуск условий: if (x > y) then // 5 > 53 - ложь else if (x > z) then // 5 > 2 - истина a := x + y // a = 5 + 53 = 58 else a := y + z;

Ошибка здесь в том, что мы случайно заменили значение a на сумму двух наибольших цифр вместо суммы больших цифр.

Чтобы исправить ошибку, нужно сначала найти две наибольшие цифры, а затем вычислить их сумму. Вот исправленная версия программы:

pascal
program work; var x, y, z, a, sum: integer; begin writeln('Введите трехзначное число:'); readln(a); x := a div 100; y := a div 10 mod 10; z := a mod 10; if (x > y) and (x > z) then sum := x + Max(y, z) else if (y > x) and (y > z) then sum := y + Max(x, z) else sum := z + Max(x, y); writeln('Сумма двух наибольших цифр числа: ', sum); end.

Теперь программа должна правильно вычислять сумму двух наибольших цифр введенного трехзначного числа.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос