include stdio include math int main Маркер выхода из программы int exi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <math.h>
int main()
{
// Маркер выхода из программы
int exitProgramm;
do {
// Ввод значения Х
printf("Введите значение Х: ");
// Создаем переменную для хранения х и присваиваем ей значение
float index;
scanf("%f", &index);
getchar();
int limited(){
// Ввод точности расчетов
printf("Введите точность: ");
// Создаем переменную для предела точности изменение и присваиваем ей значение
float limit;
scanf("%f", &limit);
getchar();
// Множители
float numTop = 1; // Множитель чилителя (изначально 1)
float numBottom = 1; // Множитель знаменателя (изначально 1)
int step = 1; // Счетчик шагов
float slag1, slag2, result;
do {
// Вычисляем первое слагаемое
slag1 = numTop / (numBottom * index);
// Сразу умножаем на 3 знаменатель и плюсуем единичку к числителю
numBottom = numBottom * 3;
numTop++;
// Вычисляем второе слагаемое
slag2 = numTop / (numBottom * index);
(step % 2) ? (result = slag1 - slag2) : (result = slag1 + slag2);
result = fabsf(result);
/* Вывод промежуточных значений переменных (для отладки) При необходимости раскомментить*/
printf("Слагаемое1=%f Слагаемое2=%f Множитель1=%f Множитель2=%f Результат=%f\n", slag1, slag2, numTop, numBottom, result);
step++; // Увеличиваем номер шага на 1
}
while (result > limit && step < 20);
if(step < 20){
printf("Ряд сошелся на %d-м шаге, при достижении значения: %f\nПопробовать с другой точностью? Y/N ", step, result);
fflush(stdin);
int returnLimit;
returnLimit = getchar();
if(returnLimit == 'y'){
limited();
}
} else {
printf("Превышен лимит шагов. Операция прервана. Попробовать с другой точностью? Y/N ");
fflush(stdin);
int returnLimit;
returnLimit = getchar();
if(returnLimit == 'y'){
limited();
}
}
return 0;
} limited();
// Завершение работы
printf("Выйти из программы?(Y) Или попробовать с другими числами?(N) ");
fflush(stdin);
scanf("%d", &exitProgramm);
exitProgramm = getchar();
}
while (exitProgramm != 'y');
return 0;
}