Перевести программу из Pascal в СИ - C (СИ)
Формулировка задачи:
Перевести программу из Pascal в СИ:
var s: string; i,count: integer; begin ReadLn(s); count := 0; for i := 1 to Length(s) do begin if (s[i] = '(') and (count >= 0) then Inc(count); if s[i] = ')' then Dec(count); end; if count = 0 then WriteLn('Yes') else WriteLn('No'); ReadLn end.
Решение задачи: «Перевести программу из Pascal в СИ»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char s[256]; int count = 0; int i; fgets(s, sizeof(s), stdin); for (i = 0; i < strlen(s); ++i) { if ((s[i] == '(') && (0 <= count)) { count++; } else if (s[i] == ')') { count--; } } if (count == 0) { printf("Yes"); } else { printf("No"); } system("pause"); return 0; }
Объяснение кода листинга программы
- Переменная
s
объявлена как массив символов с размером 256. - В цикле
for
происходит проход по всем символам в строкеs
. - Переменная
count
инициализируется нулем и используется для подсчета скобок. - Если текущий символ
s[i]
равен(
и значение переменнойcount
больше или равно нулю, то значение переменнойcount
увеличивается на единицу. - Если текущий символ
s[i]
равен)
и значение переменнойcount
больше нуля, то значение переменнойcount
уменьшается на единицу. - После прохода по всем символам в строке
s
, значение переменнойcount
проверяется на равенство нулю. - Если значение переменной
count
равно нулю, то выводитсяYes
. - Если значение переменной
count
не равно нулю, то выводитсяNo
. - В конце программы вызывается функция
system(
pause)
, которая приостанавливает выполнение программы до нажатия клавиши. - Программа возвращает ноль, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д