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

Из двух чисел получить новое путём замены чётных цифр первого числа на наибольшую цифру второго числа

12.11.2016, 22:24. Показов 1481. Ответов 5
Метки нет (Все метки)

Условие:
Разработать программу для реализации указанного действия над целыми числами без знака (longint) в десятичной системе счисления. Написать две программы: 1) с использованием массивов, т.е. число представить в виде массива цифр, произвести необходимые действия, из массива цифр получить новое число и результат вывести в виде нового числа;
2) без использования массивов.
Задание:
Из двух чисел получить новое путем замены четных цифр первого числа на наибольшую цифру второго числа (231, 73 → 731)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2016, 22:24
Ответы с готовыми решениями:

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы...

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы...

Написать программу которая определяет сумму четных цифр первого числа и нечетных цифр второго числа
Написать программу которая определяет сумму четных цифр первого числа и нечетных цифр второго...

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

5
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5992 / 3569 / 2504
Регистрация: 22.11.2013
Сообщений: 10,163
Записей в блоге: 1
12.11.2016, 23:33 2
Лучший ответ Сообщение было отмечено Anton_04 как решение

Решение

2)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var m, n, p: Longint; a, b: Integer;
begin
  ReadLn(m,n); p:=1; {b:=0;}
  repeat
    a:=n mod 10; n:=n div 10;
    if b<a then b:=a;
  until n=0;
  repeat
    a:=m mod 10; m:=m div 10;
    if not Odd(a) then a:=b;
    n:=n+a*p; p:=p*10;
  until m=0;
  WriteLn(n);
end.
1
0 / 0 / 2
Регистрация: 10.11.2016
Сообщений: 16
13.11.2016, 00:34 3
1)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program task;
var aa,ab:array of integer;
    a,b,res:longint;
    i,max:integer;
    num,astr,bstr:string;
begin
writeln('Enter two numbers: ');
readln(a);
readln(b);
aa:=new integer[length(inttostr(a))];
ab:=new integer[length(inttostr(b))];
astr:=inttostr(a);
bstr:=inttostr(b);
for i:=0 to length(inttostr(a))-1 do
     aa[i]:=strtoint(astr[i+1]);
for i:=0 to length(inttostr(b))-1 do
     ab[i]:=strtoint(bstr[i+1]);
max:=ab[0];
for i:=0 to length(ab)-1 do
     if max<ab[i] then max:=ab[i];
for i:=0 to length(aa)-1 do
     if aa[i] mod 2=0 then aa[i]:=max;
for i:=length(aa)-1 downto 0 do
     num:=concat(inttostr(aa[i]),num);
res:=strtoint(num);
writeln('Result : ',res);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5992 / 3569 / 2504
Регистрация: 22.11.2013
Сообщений: 10,163
Записей в блоге: 1
13.11.2016, 09:46 4
AnthonyM,
вы разделом ошиблись с подобным кодом.
Но даже в подходящем разделе обилие IntToStr/StrToInt дурно пахнет.

Добавлено через 17 минут
1)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  m, n: Longint;
  an, d, j: Integer;
  a: array [1..10] of Integer;
begin
  ReadLn(m,n);
  repeat
    Inc(an); a[an]:=m mod 10; m:=m div 10;
  until m=0;
  d:=a[1]; for j:=2 to an do if d<a[j] then d:=a[j];
  an:=0;
  repeat
    Inc(an); a[an]:=n mod 10; n:=n div 10;
  until n=0;
  for j:=1 to an do if Odd(a[j]) then a[j]:=d;
  n:=0; for j:=an downto 1 do n:=n*10+a[j];
  WriteLn(n);
end.
0
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 9
13.11.2016, 14:23  [ТС] 5
Спасибо, но во втором задании, когда вводишь числа 231 и 73 получается 33 а не 731

Добавлено через 57 секунд
Извиняюсь, в первом задании такая проблема

Добавлено через 16 минут
Оно получается заменяет максимальное число первого числа на максимальное число второго числа.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5992 / 3569 / 2504
Регистрация: 22.11.2013
Сообщений: 10,163
Записей в блоге: 1
13.11.2016, 14:32 6
Лучший ответ Сообщение было отмечено Anton_04 как решение

Решение

Там другое условие получилось, первое<->второе и четное<->нечетное: замена нечетных цифр второго числа на наибольшую цифру первого числа.
Заметить и исправить не составляет труда, не так ли?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  m, n: Longint;
  an, d, j: Integer;
  a: array [1..10] of Integer;
begin
  ReadLn(m,n);
  an:=0; repeat Inc(an); a[an]:=n mod 10; n:=n div 10; until n=0;
  d:=a[1]; for j:=2 to an do if d<a[j] then d:=a[j];
  an:=0; repeat Inc(an); a[an]:=m mod 10; m:=m div 10; until m=0;
  for j:=1 to an do if not Odd(a[j]) then a[j]:=d;
  m:=0; for j:=an downto 1 do m:=m*10+a[j];
  WriteLn(m);
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2016, 14:32

Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -> 3153)
Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -&gt; 3153) на DevC++....

Определить наибольшую цифру среди цифр натурального числа N
Определить наибольшую цифру среди цифр натурального числа N.

Ввести три числа. Вывести последние цифры чисел. Использовать процедуру замены числа на его последнюю цифру
Ввести три числа. Вывести последние цифры чисел. Использовать процедуру замены числа на его...

Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его первую цифру
Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его первую...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.