В сем привет! Помогите решить задача на с++. C клавиатуры вводится числа и записываются в переменные max и Del0. Дан цикл While его нужно выполнять до тех пор пока |sum - x| < Del0. Внутри цикла находится цикл for который выполняет суммирование. У меня получается бесконечный цикл. Необходимо выполнять суммирование до тех пор пока условие не выполнится и на экран вывести n.
Вот код, который у меня получился:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double sum, Del0, x;
int n, max;
n = 1;
setlocale(LC_ALL, "");
cout << "Введите max: " << endl;
cin >> max;
cout << "Введите De10: " << endl;
cin >> Del0;
x = pow(3.14, 2) / 12;
sum = 0;
while (abs(sum - x) < Del0) {
for (n = 1; n <= max; n++) {
sum = pow((-1), n + 1) * 1 / pow(n, 2);
cout << "При n = " << n << " сумма равна " << sum << endl;
}
}
cout << "Количество элементов: " << n << endl;
}
Вот примерно что от вас хотят...
int main()
{
double x = 3.14159265358*3.14159265358/12;
double delta;
cout << "Введите Delta: " << endl;
cin >> delta;
cout << "Ожидаемое количество элементов: " << ceil(1/sqrt(delta)) << endl;
double sum = 0;
for(int n = 1, sig = -1; ; ++n)
{
sum += double(sig *= -1)/n/n;
cout << "n = " << setw(8) << n << ": "
<< setprecision(10) << sum << endl;
if (abs(sum - x) < delta)
{
cout << "Количество элементов: " << n << endl;
break;
}
}
}
P.S. Что-то за сегодня уже вторую простейшую математику исправлять приходится...
К сожалению я не уверен, так как условие не очень мне понятно, но если исходить из того, что мы имеем, код у Вас в принципе верный, цикл становится бесконечным по той причине, что переменная sum - не увеличивается.
Решение:
Исправить: sum = pow((-1), n + 1) * 1 / pow(n, 2);
На
sum +=sum + (pow((-1), n + 1) * 1 / pow(n, 2));
Проблема решилась следующим образом, спасибо.
int main()
{
double sum, Del0, x;
int n, max;
setlocale(LC_ALL, "");
cout << "Введите max: " << endl;
cin >> max;
cout << "Введите De10: " << endl;
cin >> Del0;
x = 3, 14 * 3, 14 / 12;
n = 1;
sum = 0;
while (abs(sum - x) < Del0) {
for (n = 1; n <= max; n++) {
sum = sum + pow(-1, n + 1) * 1 / pow(n, 2);
cout << "При n = " << n << " сумма равна " << sum << endl;
}
}
cout << "Количество элементов: " << n << endl;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем привет, написал код и хочу узнать можно ли как то его ещё сильнее у компановать?
Требуется написать программу, которая находит натуральные числа, кратные 3 и 5 в диапазоне меньше 1000,затем выводит сумму этих чиселПочему...
Недавно начала изучать с++, есть задание по обработке текстового файла такого вида:
Я пишу свой небольшй HTTP-сервер на с++В нем мне нужно обрабатывать динамические запросы