Можете объяснить почему программа выдает неправильный ответ? - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д