Определить, является ли введенная последовательность геометрической прогрессией - C#

Узнай цену своей работы

Формулировка задачи:

С клавиатуры вводится последовательность целых чисел, признаком конца ввода является 0, определить является введенная последовательность геометрической прогрессией. Подскажите пожалуйста, работает без массива, но при вводе двух чисел последовательности проверка не проходит так как выходит из цикла, даже если проверку сделать, то как ни крути b присваивается c(Это необходимо чтобы продолжить проверку чисел последовательности если их больше трех).
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace _test
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. double a, b, c = 1, d;
  13. bool progress = true;
  14. System.Console.Write("Введите последовательность чисел через строку:\n");
  15. a = Convert.ToDouble(Console.ReadLine());
  16. b = Convert.ToDouble(Console.ReadLine());
  17. d = a / b;
  18. System.Console.WriteLine( d);
  19. while (c != 0)
  20. {
  21. c = Convert.ToDouble(Console.ReadLine());
  22. if (c != 0)
  23. {
  24. if (b / c != d)
  25. progress = true;
  26. else
  27. progress = false;
  28. }
  29. b=c;
  30. }
  31. if (!progress)
  32. System.Console.WriteLine("Последовательность является геометрической прогрессией");
  33. else
  34. System.Console.WriteLine("Последовательность НЕ является геометрической прогрессией");
  35. while (Console.ReadKey().Key != ConsoleKey.Escape) ;
  36. }
  37. }
  38. }

Решение задачи: «Определить, является ли введенная последовательность геометрической прогрессией»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.     double a, b, c, d;
  4.     bool progress = true;
  5.     System.Console.Write("Введите последовательность чисел через строку:\n");
  6.     a = Convert.ToDouble(Console.ReadLine());
  7.     b = Convert.ToDouble(Console.ReadLine());
  8.     d = a / b;
  9.     c = Convert.ToDouble(Console.ReadLine());
  10.     while (c != 0)
  11.     {
  12.         progress &= (b / c == d);
  13.         b = c;
  14.         c = Convert.ToDouble(Console.ReadLine());
  15.     }
  16.     if (progress)
  17.         System.Console.WriteLine("Последовательность является геометрической прогрессией c шагом {0}", 1/d);
  18.     else
  19.         System.Console.WriteLine("Последовательность НЕ является геометрической прогрессией");
  20.     while (Console.ReadKey().Key != ConsoleKey.Escape) ;
  21. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы