Перевести код с Паскаля на Си - C (СИ) (150103)
Формулировка задачи:
Думаю Вам не составит труда ). А я запутался)
А это еще:
uses crt;
var N,M:integer;
function Fac(x:integer):longint;
begin
if x=1 then Fac:=1
else fac:=x*fac(x-1);
end;
begin
clrscr;
Write('N=');readln(N);
Write('M<N=');readln(M);
write('N!/(M!*(N-M)!)=',Fac(N)div(Fac(M)*Fac(N-M)));
readln;
end.var
a: array[0..9] of integer;
i, n, l: integer;
av: real;
begin
readln(n);
for i := 0 to 9 do
begin
a[i] := random(25);
if a[i] < n then
av := av + a[i];
l := l + 1;
end;
av := av / l;
writeln('Среднее арифметическое чисел <', n:3, ' =', av:4);
end.Решение задачи: «Перевести код с Паскаля на Си»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int random (int N) { return rand() % N; }
int main()
{
int a[10];
int i,n,l=0;
float av=0;
printf ("<<Вычисление среднее арифметическое чисел>>\n");
printf ("Введите число = ");
scanf ("%d",&n);
printf("%d\n",n) ;
for(i=0;i<10;i++)
{
a[i] = random(25);
printf("%d %d \n",i,a[i]);
if (a[i]<n)
{
av=av+a[i];
l=l+1;
}
}
printf("%d",l);
printf("\nВычисление среднее арифметическое чисел < %d = %.3f\n", n, av/l);
}
Объяснение кода листинга программы
- Объявлены функции main() и random(), а также переменные a[10], i, n, l=0; и av=0;
- Выводится сообщение
<<Вычисление среднее арифметическое чисел>> - Пользователю предлагается ввести число =
- Число n считывается в переменную n с помощью scanf(
%d,&n) - Выводится значение переменной n
- В цикле for(i=0;i<10;i++) перебираются элементы массива a от 0 до 9
- Каждый элемент a[i] инициализируется случайным числом от 0 до 24 с помощью функции random(25)
- Выводится значение i и значение a[i]
- Если a[i] меньше значения n, то к среднему арифметическому av добавляется a[i], а к счетчику l добавляется 1
- После завершения цикла выводится значение счетчика l
- Вычисляется среднее арифметическое чисел, значение которого выводится на экран.