Вывод значений выражений на экран. Почему-то игнорирует это: "if (n == 0) || (m == 0)" - C#
Формулировка задачи:
Не понимаю, почему при вводе m=0 или n=0 программа обходит стороной "if ((n == 0) || (m == 0))" и вместо вывода сообщения"Нельзя вычислить", выводит какое-либо значение переменной b,
что здесь не так?
объясните, пожалуйста.
Код программы:
Обращаю внимание на этот участок кода:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication12 { class Program { static void Main(string[] args) { Console.WriteLine("Программа нахождения значений выражений"); double m = 0, n = 0, x = 0, y = 0, s1 = 0,c=0,d=0; bool OK1 = false, OK2 = false, OK3 = false, a = false, b = false; while (!OK1) { try { Console.Write("n?"); n = Convert.ToDouble(Console.ReadLine()); OK1 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } while (!OK2) { try { Console.Write("m?"); m = Convert.ToDouble(Console.ReadLine()); OK2 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } while (!OK3) { try { Console.Write("x?"); x = Convert.ToDouble(Console.ReadLine()); OK3 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } if (m == 0) Console.WriteLine("Нельзя вычислить!"); else { s1 = n / m++; Console.WriteLine(); Console.WriteLine("n={0} m={1} (n / m++)={2} ", n, m, s1); Console.WriteLine("Для продолжения нажмите Enter.."); Console.ReadLine(); } a = (m++ < --n); Console.WriteLine("(m++<--n)={0} ", a); Console.WriteLine(); Console.WriteLine("Для продолжения нажмите Enter.."); Console.Read();
C# |
y = Math.Sqrt(Math.Abs(x * x * x - 1)) - 7 * (Math.Cos(Math.Pow((x * x * x * x + x), (1 / 3)))); Console.WriteLine("Sqrt(Abs(x*x*x-1))-7*(Cos((x*x*x*x+x)^(1/3))) = {0}", y); Console.WriteLine("Для выхода нажмите Enter..."); Console.Read(); Console.ReadKey(); } } }
Решение задачи: «Вывод значений выражений на экран. Почему-то игнорирует это: "if (n == 0) || (m == 0)"»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication12 { class Program { static void Main(string[] args) { Console.WriteLine("Программа нахождения значений выражений"); double m = 0, n = 0,n0=0,m0=0, x = 0, y = 0, s1 = 0,c=0,d=0; bool OK1 = false, OK2 = false, OK3 = false, a = false, b = false; while (!OK1) { try { Console.Write("n?"); n = Convert.ToDouble(Console.ReadLine()); OK1 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } while (!OK2) { try { Console.Write("m?"); m = Convert.ToDouble(Console.ReadLine()); OK2 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } while (!OK3) { try { Console.Write("x?"); x = Convert.ToDouble(Console.ReadLine()); OK3 = true; } catch (FormatException) { Console.WriteLine("Ошибка ввода!"); } } if (m == 0) Console.WriteLine("Нельзя вычислить!"); else { m0 = m; s1 = n / m0++; Console.WriteLine(); Console.WriteLine("n={0} m={1} (n / m++)={2} ", n, m0, s1); Console.WriteLine("Для продолжения нажмите Enter.."); Console.ReadLine(); } m0 = m; n0 = n; a = (m0++ < --n0); Console.WriteLine("(m++<--n)={0} ", a); Console.WriteLine(); Console.WriteLine("Для продолжения нажмите Enter.."); Console.Read(); if ((n == 0) || (m == 0)) Console.WriteLine("Нельзя вычислить!"); else { c = (m / n); c++; d = n / m; b=(c<d); Console.WriteLine("(((m/n)++)<(n/m))={0}",b); Console.WriteLine(); Console.WriteLine("Для продолжения нажмите Enter.."); Console.ReadLine(); } y = Math.Sqrt(Math.Abs(x * x * x - 1)) - 7 * (Math.Cos(Math.Pow((x * x * x * x + x), (1 / 3)))); Console.WriteLine("Sqrt(Abs(x*x*x-1))-7*(Cos((x*x*x*x+x)^(1/3))) = {0}", y); Console.WriteLine("Для выхода нажмите Enter..."); Console.Read(); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д