Перевод из Паскаля в Си - C (СИ)
Формулировка задачи:
function Fact2(n: integer): real; var anva: integer; begin result := n; anva := n; if (n <> 1) and (n <> 2) then if odd(n) then while anva <> 1 do begin anva := anva - 2; result := result * anva; end else while anva <> 2 do begin anva := anva - 2; result := result * anva; end; end; var i, n: integer; begin for i := 1 to 5 do begin write('N = '); readln(n); writeln(N, '!! = ', Fact2(N)) end end.
Решение задачи: «Перевод из Паскаля в Си»
textual
Листинг программы
/* * Generated by TPTC - Translate Pascal to C * Version 1.7 03/26/88 (C) 1988 S.H.Smith */ #include <stdio.h> #include <conio.h> int odd(int z) { return z&1; } float Fact2(int n) { int anva; float result; result = n; anva = n; if ((n != 1) && (n != 2)) if (odd(n)) while (anva != 1) { anva = anva - 2; result = result * anva; } else while (anva != 2) { anva = anva - 2; result = result * anva; } return result;} int i, n; void main(int argc, char *argv[]) { for (i = 1; i <= 5; i++) { printf("N = "); cscanf("%d\n",&n); printf("%d!! = %f\n",n,Fact2(n)); } }
Объяснение кода листинга программы
- В начале кода указаны два заголовочных файла, которые используются для работы с вводом/выводом и прерываниями.
- Далее идёт функция
odd(int z)
, которая возвращает 1, если числоz
нечётное, и 0 в противном случае. - После неё определена функция
Fact2(int n)
, которая вычисляет факториал числаn
. - В функции
Fact2(int n)
переменнойresult
присваивается значениеn
, а переменнойanva
— копируется значениеn
. - Затем выполняется проверка: если
n
не равно 1 и 2, то в цикле выполняется вычисление факториала. - Если
n
нечётное, то в циклеanva
уменьшается на 2, аresult
умножается наanva
. - Если
n
чётное, то в циклеanva
уменьшается на 2, аresult
умножается наanva
. - В основной функции
main(int argc, char *argv[])
переменнойi
присваивается значение от 1 до 5, а переменнойn
считывается значение с помощью функцииcscanf()
. - Выводится сообщение
N =
и считывается значениеn
с помощью функцииprintf()
иcscanf()
. - Выводится сообщение
N!! =
Fact2(n)с помощью функции
printf()`. - В конце кода есть пять итераций цикла, в которых считывается значение
n
и вычисляется факториал с помощью функцииFact2(n)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д