Вычислить сумму знакопеременного ряда, до 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);
}
Объяснение кода листинга программы
В этом коде:
- Сначала пользователю предлагается ввести число (переменная
n), которое определяет количество членов ряда, которые нужно вычислить. - Затем код проверяет, является ли это число равным 1. Если это так, то код просто выводит
1и завершает свою работу. - В противном случае код начинает цикл, который начинается с числа 3 и увеличивается на 2 на каждой итерации, пока не станет больше чем (2*n+1).
- Внутри цикла код проверяет, является ли счетчик (counter) нечетным числом. Если это так, то код вычитает дробь 1/den из
res. Если счетчик четный, то код добавляет дробь 1/den кres. - После каждой итерации счетчик увеличивается на 1.
- После завершения цикла код выводит результат в формате с плавающей точкой.
Пояснение по коду:
- Переменная
nиспользуется для определения количества членов ряда, которые нужно вычислить. - Переменная
counterиспользуется для отслеживания количества итераций цикла. - Переменная
resиспользуется для хранения суммы ряда. - В цикле переменная
denиспользуется для хранения текущего делителя, который используется для вычисления дроби. - Значение 1. / den используется для вычисления дроби.
- Переменная