Golubovskayairina
?>

Перевести из pascal в с var a, b: longint; n, m: byte; begin readln(a); readln(n); b : = 0; while a > 0 do begin m : = a mod 10; if m < > n then b : = b * 10 + m; a : = a div 10; end; while b > 0 do begin a : = a * 10 + b mod 10; b : = b div 10; end; writeln(a); end.

Информатика

Ответы

Краева
#include <stdio.h>

int main(void) {
long int a, b=0;
int n, m;
scanf("%d",&a);
scanf("%d",&n);
while (a>0) {
  m = a % 10;
  if (m != n) b = b*10+m;
  a = a / 10;
}
while (b != 0) {
  a = a*10 + b%10;
  b = b/10;
}
printf("a = %d",a);
return 0;
}

Пример:
125272
157
docvet4
Если три нуля значащие, значит число начинается с единицы. Поскольку любое число в развернутой записи есть сумма произведений, каждое из которых представляет собой произведение цифры, находящейся на n-й позиции на основание системы счисления, возведенной в степень n-1, то понятно, что чем больше по величине будут цифры в старших разрядах, тем больше будет само число.
В применении к двоичной системе это означает, что слева должны стоять все единицы, а справа - нули.
Получаем 11000(2)=1х2^4+1x2^3=16+8+=24(10) - тут символ ^ означает возведение в степень.
ответ: 24
Vladimir

const

 AOper: array [0..3] of string = ('+', '-', '*', '/');

var

 a, b, Oper: Integer;

 r: Real;

begin

 Randomize;    // инициализация датчика случайных чисел

 a := Random (1001);

 b := Random (1001);

 Oper := Random (4);

 case Oper of

 0: r := a + b;

 1: r := a - b;

 2: r := a * b;

 3:if b <> 0 then begin

     r := a / b;

   end else begin

     WriteLn ('Произошла ошибка при делении на ноль');

     Exit;

   end

 else r := -1;

 end;

 WriteLn (a);

 WriteLn (b);

 WriteLn (Aoper [Oper]);

 if (r >= 0) and (r - Trunc (r) = 0) then begin   // если в результате получилось положительное целое число

   WriteLn ('yes');

   WriteLn (r :6 :0);

 end else

   WriteLn (' no');

 ReadLn;

end.

Объяснение:

r - Trunc (r) // это выделение дробной части числа

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Перевести из pascal в с var a, b: longint; n, m: byte; begin readln(a); readln(n); b : = 0; while a > 0 do begin m : = a mod 10; if m < > n then b : = b * 10 + m; a : = a div 10; end; while b > 0 do begin a : = a * 10 + b mod 10; b : = b div 10; end; writeln(a); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Бегун-Марина
Alekseevich1012
Маринина_Елена
smnra219
Семеновна-Павел
agaloan8
alenchik19938823
snopovajulia
СмыковаДарья1969
Elen-ti81459
Pervosha
yanva
dmitrievanata83538
omigunova39
rkorneev19061