using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace sisisisiis { class Program { private static int sun; private static int sum; private static int x, y, z,w; private static string f; private static string h; private static string j; static void Main(string[] args) { Console.Write("请输入随机数的范围(9-10):"); string azzz = Console.ReadLine(); string regex = @"(d+)D+(d+)"; Match mstr = Regex.Match(azzz, regex); int s1 = int.Parse(mstr.Groups[1].Value); int s2 = int.Parse(mstr.Groups[2].Value); random(s1, s2); Console.Write("请输入答案:"); int l = int.Parse(Console.ReadLine()); qlgs(f, x, y); hlgs(h, z, w); qlgs(j, sun, sum); if (l == sun) { Console.WriteLine("回答正确!"); } else { Console.WriteLine("回答错误!"); } Console.Read(); } private static int qlgs(string a1,int a2,int a3) { switch (a1) { case "+": sun = a2 + a3; break; case "-": sun = a2 - a3; break; case "*": sun = a2 * a3; break; case "/": if (a3 == 0) { } else { sun = a2 / a3; } break; } return sun; } private static int hlgs(string b1, int b2, int b3) { switch(b1) { case "+": sum = b2 + b3; break; case "-": sum = b2 - b3; break; case "*": sum = b2 * b3; break; case "/": if (b3 == 0) { } else { sum = b2 / b3; } break; } return sum; } private static void random(int a,int b) { Random si = new Random(); x = si.Next(a, b); y = si.Next(a, x); z = si.Next(a, y); w = si.Next(a, b); string[] operators = new string[] { "+", "-", "*", "/" }; f = operators[new Random().Next(0, 4)]; string[] opera = new string[] { "+", "-", "*", "/" }; h = opera[new Random().Next(0, 4)]; j = operators[new Random().Next(0, 4)]; string z1 = "="; string xfyhz ="("+ x + f + y +")"+ h +"("+z +j+w+")"+ z1; Console.WriteLine(xfyhz); } } }
总结:
总的来说这个方法很有局限性,没有把所有的情况都包括全,
string[] operators = new string[] { "+", "-", "*", "/" };
f = operators[new Random().Next(0, 4)];
string[] opera = new string[] { "+", "-", "*", "/" };
h = opera[new Random().Next(0, 4)];
为什么每次 f 都等于 h 不能这样用吗?
想了一下三个运算符,四个数,再加上是否带括号如果把所有的情况都列出来,有点不太可能,代码的重复性会更多。所以就用了这样的偷懒的方式!