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