26.04.2011, 17:34. Просмотров 357. Ответов 3
Не понимаю в чем ошибка,на экран выводится набор цифр ,а не то что надо.Как сделать код правильным?
Результат вывода программы я выложу в теме.
Задача.
Дана матрица А(15,15), сформированная случайным образом из целых чисел диапазона [-5,5]. Найти и вывести на печать среднее геометрическое элементов, вокруг которых (слева, справа, сверху и снизу) стоят нули. Вывести результат на экран.
#include <stdio.h> // Для средств ввода-вывода
#include <stdlib.h> //Для функции system
#include <time.h>
#include <math.h> //Для функции tan
int main(){
int i, j;
int a[15][15];
double 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[i][j] = rand()%10 - 5; //Заданное условие при данных параметрах достигается очень редко.
//Для отладки рекомендуется rand()%3
for (i = 0;i != 15;i++) {
for (j = 0;j != 15;j++)
printf("%d ", a[i][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[i][j-1] == 0 && a[i][j+1] == 0 && a[i][j] != 0) {
s *= a[i][j]; //Выражение по корнем...
st++; //...и степень корня
}
if (st != 0) //Если условие выполнилось хотя бы раз
{
res = pow(s, 1 / st);
printf("Result: %f | %d", res, st); }
return 0;
}
0
|