Составить две функции - одна возвращает значение через свое имя, вторая через аргумент - C (СИ)
Формулировка задачи:
Нужно составить две функции. Одна возвращает значение через свое имя, вторая через аргумент.
Вот моё пока неработающее творение:
#include <stdio.h> #include <stdlib.h> #include <math.h> float sum (float x, int n) { int i, k; float sum, p; sum=0; for (i = 1; i <= n; i=i+2) x *= i; p = sum += pow(x,i) / i; return sum; } int main () { int f, n, x, p; printf ("vvedite n: "); scanf ("%f", &n); printf ("vvedite x: "); scanf ("%f", &x); p = sum (x, n); printf ("sum = %d", p); }
Решение задачи: «Составить две функции - одна возвращает значение через свое имя, вторая через аргумент»
textual
Листинг программы
float sum (float x, int n) { int i; float p, s; s = p = x; for(i = 3; i <= n; i += 2) { p *= (x * x) / (n - 1) / n; s += p; } return s; } void sum2 (float x, int n, float *result) { int i; float p, s; s = p = x; for(i = 3; i <= n; i += 2) { p *= (x * x) / (n - 1) / n; s += p; } *result = s; } int main() { float r1, r2; r1 = sum(0.5, 7); sum2(0.5, 7, &r2); printf("sum = %8.6f, sum2 = %8.6f", r1, r2); return 0; }
Объяснение кода листинга программы
- В функции
sum
создаются три переменные типаint
иfloat
:i
,p
,s
. Значение переменнойs
инициализируется значением переменнойp
, которая инициализируется значением первого аргумента функцииsum
. - Переменная
p
умножается наx*x
, полученное значение делится на(n-1)/n
, и затем прибавляется кs
. - Цикл выполняется до тех пор, пока значение
i
меньшеn
, после чего выполняется операция деления-умножения, и результат прибавляется кs
. - Значение переменной
s
возвращается из функции. - В функции
sum2
создаются три переменные типаint
иfloat
:i
,p
,s
. Значение переменнойs
инициализируется значением переменнойp
, которая инициализируется значением первого аргумента функцииsum2
. - Переменная
p
умножается наx*x
, полученное значение делится на(n-1)/n
, и затем прибавляется кs
. - Цикл выполняется до тех пор, пока значение
i
меньшеn
, после чего выполняется операция деления-умножения, и результат прибавляется кs
. - Значение переменной
s
присваивается значению по адресу, указанному в последнем аргументе функцииsum2
. - В функции
main
создаются две переменные типаfloat
-r1
иr2
. - Значение переменной
r1
присваивается результат вызова функцииsum
с аргументами0.5
и7
. - Значение переменной
r2
присваивается результат вызова функцииsum2
с аргументами0.5
и7
, и адресом переменнойr2
. - На экран выводится значение переменных
r1
иr2
с заданной точностью. - Функция
main
возвращает0
, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д