Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2019, 19:20   #1
Вася3123
Новичок
Джуниор
 
Регистрация: 17.12.2019
Сообщений: 4
Злость Перевод кода Pascal на Си

Здравствуйте нужна помощь в переводе кода Pascal на C.
Я пробовал сам перевести но не получается.
Вот код:
readln(a);
readln(b);
max := 0;
m := '0123456789'
for i := 1 to lenght(a) do begin
if strtoint(a[i]) > max then max := strtoint(a[i]);
if pos(a[i], m)=0 then max := 16;
end;
writeln(a, '-', max);
max := 0;
m := '0123456789'
for i := 1 to lenght(b) do begin
if strtoint(b[i]) > max then max := strtoint(b[i]);
if pos(b[i], m)=0 then max := 16;
end;
writeln(b, '-', max);
end.
Вася3123 вне форума Ответить с цитированием
Старый 19.12.2019, 08:16   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

На С++:

Код:
void foo(string s) {
  int max = 0;

  for (auto c : s) {
    if (c > max)
      max = a;
    if (c < '0' || c > '9')
      max = 16;
  }
  cout << s << " - " << max;
}

int main() {
  string a, b;
  cin >> a >> b;
  
  foo(a);
  foo(b);
}
Но лучше скажи что оно должно делать, т.к. код какой-то странный, не понятные действия.

Что он делает? - если в строке есть символ, не входящий в диапазон 0-9 - то выводит "str - 16"
Если же все символы строки входят в диапазон 0-9 то находит среди них максимум и выводит "st - max"

Не понятно зачем это нужно (здоровый человек ткаое задание делать бы вообще не стал), но если сильно приперло - то примерно так:

Код:
void foo (string s) {
  if (s.empty()) // что в этом случае делает ваша программа - вообще неясно.
    return;
  
  auto is_not09 = find_if(s.begin(), s.end(), [](char c) { return c < '0' || c > '9' });
  if (is_not09 != s.end()) {
    cout << s << ' - ' << 16;
    return; 
  }

  cout << s << *max_element(s.begin(), s.end());
}
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода из Pascal в C++ viphack Помощь студентам 1 11.10.2017 21:15
Перевод кода из Pascal в C++ Nurlan97 Помощь студентам 1 14.03.2014 14:30
Перевод кода из C++ в Pascal Weyribll Visual C++ 0 21.01.2014 22:27
Перевод кода из Pascal в C++ Kerragin Помощь студентам 5 13.12.2011 07:54
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37