Вычислить сумму знакопеременного ряда, до n-го члена - C (СИ)

Узнай цену своей работы

Формулировка задачи:

помогите написать код для задачи: Напишите программу на языке си, которая вычисляет сумму ряда,n члена: 1-1/3+1/5-1/7+... Число N вводится с клавиатуры. при n=3 сумма будет=0,9

Решение задачи: «Вычислить сумму знакопеременного ряда, до n-го члена»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    int n, counter = 1;
    double res = 1;
    scanf("%d", &n);
    if (n == 1) {
        printf("1");
        return 0;
    }
    for (int den = 3; den < (2 * n + 1); den += 2) {
        if (counter % 2 != 0) 
            res -= 1. / den;
        else
            res += 1. / den;
        counter++;
    }
    printf("%.1lf", res);
}

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

В этом коде:

  1. Сначала пользователю предлагается ввести число (переменная n), которое определяет количество членов ряда, которые нужно вычислить.
  2. Затем код проверяет, является ли это число равным 1. Если это так, то код просто выводит 1 и завершает свою работу.
  3. В противном случае код начинает цикл, который начинается с числа 3 и увеличивается на 2 на каждой итерации, пока не станет больше чем (2*n+1).
  4. Внутри цикла код проверяет, является ли счетчик (counter) нечетным числом. Если это так, то код вычитает дробь 1/den из res. Если счетчик четный, то код добавляет дробь 1/den к res.
  5. После каждой итерации счетчик увеличивается на 1.
  6. После завершения цикла код выводит результат в формате с плавающей точкой. Пояснение по коду:
    • Переменная n используется для определения количества членов ряда, которые нужно вычислить.
    • Переменная counter используется для отслеживания количества итераций цикла.
    • Переменная res используется для хранения суммы ряда.
    • В цикле переменная den используется для хранения текущего делителя, который используется для вычисления дроби.
    • Значение 1. / den используется для вычисления дроби.

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

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