• PASCAL
    Напишите программу: Дана последовательность из N элементов. Найти количество двузначных чисел, в которых одна и только одна из цифр 3ка.

Ответы 9

  • Даю совет, если ты работал через строку ты мог использовать: условие if pos('3',s)>0
  • согласен. просто люблю с символами работать.
  • все равно потребуется проверять на второе вхождение.
    • Автор:

      drewcbzi
    • 5 лет назад
    • 0
  • не учтен вариант 33 - 2 вхождения тройки
    • Автор:

      dulce142f
    • 5 лет назад
    • 0
  • Смотри это получается без массива, считывай число в виде строки. Выполняй условие if pos('3',st)>0, т.е. если в числе есть символ '3', позиция будет либо 2 либо 3, это больше 0, условие соблюдается и прибавляй к счётчику 1
    • Автор:

      mercle
    • 5 лет назад
    • 0
  • с массивом - необязательная опция)). эт так, в виде разминки. Позиция будет либо 1 либо 2. Опять же - 33 попадет в разряд допустимых - косяк. Но за реакцию спасибо))
    • Автор:

      abbiebuck
    • 5 лет назад
    • 0
  • Всё, учёл, не прочитал внимательно задание)
  • вариант решения, если элементы вводятсяvar  n, i, x, s : integer;   t: string;begin  writeln('количество чисел');  readln(n);  s := 0;  for i := 1 to n do    begin      writeln(i,' число:');      readln(x);      if (x > 9) and (x<100)) then        begin          t :=  IntToStr(x);         if (((t[1] = '3') and (t[2] <> '3')) or (t[1] <> '3') and (t[2] = '3'))   then s := s+1;        end;    end;    writeln('Ответ ',s)end.вариант решения, если элементы заданы массивомconstn=50var  i, x, s : integer;   t: string;  m1: array [1..n] of integer;begin  s := 0;  for i := 1 to n do     begin      x := m1[i];      if (x > 9) and (x<100)) then        begin          t := IntToStr(x);         if (((t[1] = '3') and (t[2] <> '3')) or (t[1] <> '3') and (t[2] = '3'))   then s := s+1;        end;    end;    writeln('Ответ ',s)end.
  • Вот вариант попрощеvar  n, i, s, x  : integer;begin  n := 0;  writeln('kolichestvo chisel');  readln(n);  for i := 1 to n do    begin      writeln(i,' chislo');      readln(x);      if  ((x mod 3 = 0)  and (x div 10 <> 3)) or ((x mod 3 <> 0)  and (x div 10 = 3)) then        s := s +1;    end;    writeln('otvet: ',s);end.
    • Автор:

      aurora
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years