Составить две функции - одна возвращает значение через свое имя, вторая через аргумент - 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;
}

Объяснение кода листинга программы

  1. В функции sum создаются три переменные типа int и float: i, p, s. Значение переменной s инициализируется значением переменной p, которая инициализируется значением первого аргумента функции sum.
  2. Переменная p умножается на x*x, полученное значение делится на (n-1)/n, и затем прибавляется к s.
  3. Цикл выполняется до тех пор, пока значение i меньше n, после чего выполняется операция деления-умножения, и результат прибавляется к s.
  4. Значение переменной s возвращается из функции.
  5. В функции sum2 создаются три переменные типа int и float: i, p, s. Значение переменной s инициализируется значением переменной p, которая инициализируется значением первого аргумента функции sum2.
  6. Переменная p умножается на x*x, полученное значение делится на (n-1)/n, и затем прибавляется к s.
  7. Цикл выполняется до тех пор, пока значение i меньше n, после чего выполняется операция деления-умножения, и результат прибавляется к s.
  8. Значение переменной s присваивается значению по адресу, указанному в последнем аргументе функции sum2.
  9. В функции main создаются две переменные типа float - r1 и r2.
  10. Значение переменной r1 присваивается результат вызова функции sum с аргументами 0.5 и 7.
  11. Значение переменной r2 присваивается результат вызова функции sum2 с аргументами 0.5 и 7, и адресом переменной r2.
  12. На экран выводится значение переменных r1 и r2 с заданной точностью.
  13. Функция main возвращает 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы