Переделать программу так, чтобы она включала в себя функции - C (СИ)
Формулировка задачи:
Добрый день, нужно переделать программу так, чтобы она включала в себя функции, тк сталкиваюсь с этим впервые, получилось не очень хорошо.
Код, который нужно переделать:
И то, что у меня получилось:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
double x, S;
int n, i;
S=0;
i=1;
printf("Enter the x\n");
scanf ("%lf", &x);
printf("Enter the n\n");
scanf("%d", &n);
if (n < 0) {
printf ("n is not correct data\n");
} else {
for (i = 1; i <= n; i++){
S += (x + cos(i*x))/pow(2, i);}
printf("%lf\n",S);
return 0;
}
}#include <math.h>
#include <stdio.h>
float sum (float x, int n)
int main()
{
int n, i=1;
float x, sum;
if (n>i)
for (i=1; i<n; i++){
sum+=(x+cos(i+x))/pow(2, i)
}
printf("result is %f", sum)
return 0;
}Решение задачи: «Переделать программу так, чтобы она включала в себя функции»
textual
Листинг программы
double f(double x, int i)
{
return (x + cos(i*x))/pow(2, i);
}
...................
for (i = 1; i <= n; i++){
S += f(x,i);
Объяснение кода листинга программы
- В данном коде представлена функция f(x,i), которая принимает два аргумента: x и i.
- Внутри функции происходит вычисление выражения (x + cos(i*x))/pow(2, i).
- Затем в функции происходит возвращение результата вычисления этого выражения.
- Далее представлен цикл for, который начинается с i = 1 и продолжается до тех пор, пока i <= n.
- Внутри цикла происходит вызов функции f(x,i) с передачей текущих значений x и i в качестве аргументов.
- Результат вычисления функции f(x,i) при каждом проходе цикла добавляется к переменной S.