Вывод значений выражений на экран. Почему-то игнорирует это: "if (n == 0) || (m == 0)" - C#

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

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

Не понимаю, почему при вводе m=0 или n=0 программа обходит стороной "if ((n == 0) || (m == 0))" и вместо вывода сообщения"Нельзя вычислить", выводит какое-либо значение переменной b, что здесь не так? объясните, пожалуйста. Код программы:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication12
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Console.WriteLine("Программа нахождения значений выражений");
  13. double m = 0, n = 0, x = 0, y = 0, s1 = 0,c=0,d=0;
  14. bool OK1 = false, OK2 = false, OK3 = false, a = false, b = false;
  15. while (!OK1)
  16. {
  17. try
  18. {
  19. Console.Write("n?");
  20. n = Convert.ToDouble(Console.ReadLine());
  21. OK1 = true;
  22. }
  23. catch (FormatException)
  24. { Console.WriteLine("Ошибка ввода!"); }
  25. }
  26. while (!OK2)
  27. {
  28. try
  29. {
  30. Console.Write("m?");
  31. m = Convert.ToDouble(Console.ReadLine());
  32. OK2 = true;
  33. }
  34. catch (FormatException)
  35. { Console.WriteLine("Ошибка ввода!"); }
  36. }
  37. while (!OK3)
  38. {
  39. try
  40. {
  41. Console.Write("x?");
  42. x = Convert.ToDouble(Console.ReadLine());
  43. OK3 = true;
  44. }
  45. catch (FormatException)
  46. { Console.WriteLine("Ошибка ввода!"); }
  47. }
  48. if (m == 0)
  49. Console.WriteLine("Нельзя вычислить!");
  50. else
  51. {
  52. s1 = n / m++;
  53. Console.WriteLine();
  54. Console.WriteLine("n={0} m={1} (n / m++)={2} ", n, m, s1);
  55. Console.WriteLine("Для продолжения нажмите Enter..");
  56. Console.ReadLine();
  57. }
  58. a = (m++ < --n);
  59. Console.WriteLine("(m++<--n)={0} ", a);
  60. Console.WriteLine();
  61. Console.WriteLine("Для продолжения нажмите Enter..");
  62. Console.Read();
Обращаю внимание на этот участок кода:
C#
Листинг программы
  1. y = Math.Sqrt(Math.Abs(x * x * x - 1)) - 7 * (Math.Cos(Math.Pow((x * x * x * x + x), (1 / 3))));
  2. Console.WriteLine("Sqrt(Abs(x*x*x-1))-7*(Cos((x*x*x*x+x)^(1/3))) = {0}", y);
  3. Console.WriteLine("Для выхода нажмите Enter...");
  4. Console.Read();
  5. Console.ReadKey();
  6.  
  7. }
  8. }
  9. }

Решение задачи: «Вывод значений выражений на экран. Почему-то игнорирует это: "if (n == 0) || (m == 0)"»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication12
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.WriteLine("Программа нахождения значений выражений");
  14.             double m = 0, n = 0,n0=0,m0=0, x = 0, y = 0, s1 = 0,c=0,d=0;
  15.             bool OK1 = false, OK2 = false, OK3 = false, a = false, b = false;
  16.             while (!OK1)
  17.             {
  18.                 try
  19.                 {
  20.                     Console.Write("n?");
  21.                     n = Convert.ToDouble(Console.ReadLine());
  22.                     OK1 = true;
  23.                 }
  24.                 catch (FormatException)
  25.                 { Console.WriteLine("Ошибка ввода!"); }
  26.             }
  27.             while (!OK2)
  28.             {
  29.                 try
  30.                 {
  31.                     Console.Write("m?");
  32.                     m = Convert.ToDouble(Console.ReadLine());
  33.                     OK2 = true;
  34.                 }
  35.                 catch (FormatException)
  36.                 { Console.WriteLine("Ошибка ввода!"); }
  37.             }
  38.             while (!OK3)
  39.             {
  40.                 try
  41.                 {
  42.                     Console.Write("x?");
  43.                     x = Convert.ToDouble(Console.ReadLine());
  44.                     OK3 = true;
  45.                 }
  46.                 catch (FormatException)
  47.                 { Console.WriteLine("Ошибка ввода!"); }
  48.             }
  49.             if (m == 0)
  50.                 Console.WriteLine("Нельзя вычислить!");
  51.             else
  52.             {
  53.                 m0 = m;
  54.                 s1 = n / m0++;
  55.                 Console.WriteLine();
  56.                 Console.WriteLine("n={0} m={1} (n / m++)={2} ", n, m0, s1);
  57.                 Console.WriteLine("Для продолжения нажмите Enter..");
  58.                 Console.ReadLine();
  59.             }
  60.             m0 = m;
  61.             n0 = n;
  62.             a = (m0++ < --n0);
  63.             Console.WriteLine("(m++<--n)={0} ", a);
  64.             Console.WriteLine();
  65.             Console.WriteLine("Для продолжения нажмите Enter..");
  66.             Console.Read();
  67.  
  68.             if ((n == 0) || (m == 0))
  69.                 Console.WriteLine("Нельзя вычислить!");
  70.             else
  71.             {
  72.                 c = (m / n);
  73.                 c++;
  74.                 d = n / m;
  75.             b=(c<d);
  76.                 Console.WriteLine("(((m/n)++)<(n/m))={0}",b);
  77.                 Console.WriteLine();
  78.                 Console.WriteLine("Для продолжения нажмите Enter..");
  79.                 Console.ReadLine();
  80.             }
  81.             y = Math.Sqrt(Math.Abs(x * x * x - 1)) - 7 * (Math.Cos(Math.Pow((x * x * x * x + x), (1 / 3))));
  82.             Console.WriteLine("Sqrt(Abs(x*x*x-1))-7*(Cos((x*x*x*x+x)^(1/3))) = {0}", y);
  83.             Console.WriteLine("Для выхода нажмите Enter...");
  84.             Console.Read();
  85.             Console.ReadKey();
  86.  
  87.  
  88.         }
  89.     }
  90. }

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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