Можете объяснить почему программа выдает неправильный ответ? - C#
Формулировка задачи:
Условие задачи: Даны действительные числа a, b ( a << b ). Найти третий член из генерации чисел ((-1)^i) * (1 + 1/2 +.....1/i); (i = 1, 2...), которая не пpинадлежит отрезку [a,b].
namespace ConsoleApplication15 { class Program { static void Main(string[] args) { double a = 0, b = 0, r = 0, sum = 0, s = 0, l = 0, k = 32000; int z; do { Console.WriteLine("- Нажмите 1 и Enter для просмотра условия задачи"); Console.WriteLine("- Нажмите 2 и Enter для ввода отрезка [a, b]"); Console.WriteLine("- Нажмите 3 и Enter для выполнения программы"); Console.WriteLine("- Нажмите 4 и Enter для выхода из программы"); z = Convert.ToInt32(Console.ReadLine()); switch (z) { case 1: Console.WriteLine("Даны действительные числа a, b ( a << b ). Найти третий член из генерации чисел ((-1)^i) * (1 + 1/2 +.....1/i); (i = 1, 2.....) , который не пpинадлежит отрезку [a, b]."); break; case 2: Console.Write("Введите значение a = "); a = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите значение b = "); b = Convert.ToDouble(Console.ReadLine()); break; case 3: for (double i = 1; i <= k; i++) { do { l = l + 1; sum += (1 / l); r = Math.Pow(-1, i) * sum; if ((r < a) || (r > b)) s++; } while (s == 3); } Console.WriteLine("Третье число: " + r); break; } } while (z < 4); Console.ReadKey(); } } }
Решение задачи: «Можете объяснить почему программа выдает неправильный ответ?»
textual
Листинг программы
int i = 1; do { l = l + 1; sum += (1 / l); r = Math.Pow(-1, i) * sum; if ((r < a) || (r > b)) s++; i++; } while (s != 3); Console.WriteLine("Третье число: " + r); break;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д