Может ли кто-нибудь помочь мне исправить мой код на языке Си?
Здравствуйте я должен выполнить задание для C в котором говорится следующее:
Напишите программу, которая будет оценивать значение числа Пи из бесконечного ряда:
π=4/1-4/3+4/5-4/7+4/9-4/11+⋯
Программа попросит пользователя ввести целое число, а затем вычислить значение PI с учетом этого количества членов. Например, если пользователь вводит 4, то программа должна оценить PI, используя первые четыре члена последовательности, и вывести результат вычисления:
π=4/1-4/3+4/5-4/7≅2.895238
* Примечания: вам нужно только вывести окончательный результат с плавающей запятой. Также обратите внимание, что последовательность переключается от сложения и вычитания каждого члена. Также убедитесь, что ваша программа может обрабатывать случай 0.
Ваше решение должно включать функцию, которая возвращает расчетное значение PI и принимает в качестве входных данных количество терминов, используемых для вычисления PI
двойной estimatePI(инт термины);
Кроме того, я должен решить эту проблему с помощью оператора while.
С помощью, которую вы, ребята, дали мне, я составил программу, и я не получаю никаких ошибок, но всякий раз, когда я запускаю ее и ввожу разные целые числа, я всегда получаю 3.0000000000000000 в качестве своего ответа, если я не ввожу 0 в качестве целого числа. Не знаю, где в расчетах я напортачил.
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> double estimatePI(int terms); int main() { int terms; printf("How many times would you like to calculate the value of PI by\n" "using the infinite series: "); scanf("%d", &terms); printf("The value of pi = %1.16lf\n", estimatePI(terms)); return 0; } double estimatePI( int terms) { double PI = 0; double iterations = 1; int i; i = 1; while ( i <= ( terms * 2)) { PI = PI + iterations * (4/i); iterations = -iterations; i += 2; } return PI; }
Patrice T
Теперь список ошибок.
Nelek
4/я все еще могу быть целочисленным делением. Возможно, вы захотите использовать 4.0/i, чтобы быть уверенным
Забудь это... Я только что прочитал, что это уже было сказано ниже.