В чём ошибка? - C (СИ) (154114)
Формулировка задачи:
#include <stdio.h>
#include <math.h>
#define precision 1e-7
while (x <= b){
s = 0;
for (k = 0; k <= n; k++)
{
rez = 1;
for (i = 1; i<= k; i++)
rez *= i;
s += (cos(k*Pi / 4)/rez)*pow(x,k);
}
double s(double * x) {
int n = 1;
double sum, tmp;
sum = *x;
double u1;
do {
u1 = exp(x*cos(Pi / 4);
tmp = cos(x*sin(Pi / 4))*u1;
n++;
sum += tmp;
} while (fabs(tmp) > precision);
// printf("n=%i tmp=%10.8f\n", n, tmp);
return sum;
}
int main() {
double a = 0.1;
double b = 0.8;
double h = 0.1;
do {
printf("x=%3.1f Y=%10.4f S=%10.4f\n", a, y(a), s(&a));
a += h;
} while (a<=b);
return 0;
}Решение задачи: «В чём ошибка?»
textual
Листинг программы
int factorial (int n)
{
int f=1,i;
for(i=2;i<=n;++i)
{
f=f*i;
}
return f;
}
Объяснение кода листинга программы
- В функции
factorialобъявлены две переменные:fиi. - Переменная
fинициализируется значением 1. - Переменная
iне инициализируется и будет использоваться как счётчик в цикле. - Цикл
forначинается сi=2и продолжается до тех пор, покаiменьше или равноn. - Внутри цикла
fумножается наi. - После завершения цикла
fвозвращается из функции. - Если вызвать функцию
factorialс аргументом, она вернёт факториал этого числа. - В данном коде нет проверок на входные данные, поэтому предполагается, что аргумент всегда будет неотрицательным целым числом.