Помогите перевести 8-мь строк в программе на си
вывести на печать среднее геометрическое элементов, вокруг которых (слева, справа, сверху и снизу) стоят
нули. Вывести результат на экран
#include <stdio.h> // Для средств ввода-вывода
#include <stdlib.h> //Для функции system
#include <time.h>
#include <math.h> //Для функции tan
int main(){
int i, j;
int a[15][15];
float res;
int s=1, st=0;
srand(time(NULL));
printf("\n\n\n");
for (i = 0;i<15;i++)
for (j = 0;j<15;j++)
a[j] = rand()%10 - 5; //Заданное условие при данных параметрах достигается очень редко.
//Для отладки рекомендуется rand()%3
for (i = 0;i != 15;i++)
{
for (j = 0;j != 15;j++)
printf("\n"); //Отладочный вывод
}
for (i = 1;i<14;i++)
for (j = 1;j<14;j++)
if (a[i-1][j] == 0 && a[i+1][j] == 0 && a[j-1] == 0 && a[j+1] == 0 && a[j] != 0)
{
s *= a[j]; //Выражение по корнем...
st++; //...и степень корня
}
if (st != 0) //Если условие выполнилось хотя бы раз
{
res = pow(s,(float)1/st);
printf("\n\n\n");
printf("Result: %f | %d", res, st); }
else printf("\n\n\nNet takih elementov\n");
return 0;}
Нашел свой вариант в интернете а как объяснять некоторые строки именно в этой проге ума не приложу.Пожалуйста помогите объяснить строки :
1. float res;
2. srand(time(NULL));
3. printf("\n\n\n");
4. a[j] = rand()%10 - 5;
5.s *= a[j];
6. st++
7. if (st != 0)
8. res = pow(s,(float)1/st)
1. float res;
объявление переменной res типа float (числовые данные с плавающей точкой)
2. srand(time(NULL));
инициализация начального значения генератора случайных чисел (без этого при каждом запуске программы rand() будет выводить теже самые числа)
3. printf("\n\n\n");
выводим на экран 3 переноса строки
4. a[j] = rand()%10 - 5;
a[j] равно случайное число в диапазоне от -5 до 4
5.s *= a[j];
s=s*a[j]
6. st++
st=st+1
7. if (st != 0)
если st не равен 0
8. res = pow(s,(float)1/st)
res = s в степени 1/st (корень st-степени из s)