A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

自己想的!只能做到这样了!

class Program
    {
        static void Main(string[] args)
        {
            int i1,i2,num1,num3,num2,sign;
            Random ran=new Random() ;
            Console.WriteLine("请输入范围\n请输入第一个数");
           while(!int.TryParse(Console.ReadLine(),out i1))//输入的为正确的数字
               Console.WriteLine("请正确的输入数字");
           Console.WriteLine("请输入第二个数");
           while (!int.TryParse(Console.ReadLine(), out i2))     我的电脑上有时候程序运行到这个地方会直接退出,不知道到底是电脑问题还是程序问题?
               Console.WriteLine("请正确的输入数字");
            if(i1>i2)
            {
                int i3 = i1;//随机取值是第一个数要比第二个数大
                i1 = i2;
                i2 = i3;
            }
           num1 = ran.Next(i1, i2);
           num2 = ran.Next(i1, i2);
           if (num1 > num2)
           {
               int i3 = num1;//第一个数要比第二个大
               num1 = num2;
               num2 = i3;
           }
           sign = ran.Next(0, 4);//随机四个数来代替四个运算符
           switch (sign)
           {
               case 1://用来代替加法
                   Console.WriteLine("{0}+{1}=",num1,num2);
                   num3 = num1 + num2;
                   fruit(num3);
                   break;
               case 2://用来代替减法
                   Console.WriteLine("{0}-{1}=", num1, num2);
                   num3= num1 - num2;
                   fruit(num3);
                   break;
               case 3://用来代替乘法
                   Console.WriteLine("{0}*{1}=", num1, num2);
                   num3 = num1 * num2;
                   fruit(num3);
                   break;
               case 4://用来代替除法
                   Console.WriteLine("{0}/{1}=", num1, num2);
                   num3 = num1 /num2;
                   fruit(num3);
                   break;
           }
        }
        /// <summary>
        /// 用来比较结果
        /// </summary>
        /// <param name="i"></param>
        static void fruit(int i)
        {
            int num;
            Console.WriteLine("请输入结果");
            start:
            if (!int.TryParse(Console.ReadLine(), out num))
            {
                Console.WriteLine("输入错误\n请重新输入数字");
                goto start;
            }
            if (i == num)
                Console.WriteLine("答案正确");
            else
            {
                Console.WriteLine("答案错误\n请重新输入结果");
                goto start;
            }
        }
    }

你可以加个循环

4 个回复

倒序浏览
{:soso_e127:}哥们,你这是C#啊,来错地儿了
回复 使用道具 举报
貌似不是java的啊。。。
回复 使用道具 举报
static void Main(string[] args)
        {
            int i1,i2,num1,num3,num2,sign;
            Random ran=new Random() ;
            Console.WriteLine("请输入范围\n请输入第一个数");
           while(!int.TryParse(Console.ReadLine(),out i1))//输入的为正确的数字
               Console.WriteLine("请正确的输入数字");
           Console.WriteLine("请输入第二个数");
           while (!int.TryParse(Console.ReadLine(), out i2))   
               Console.WriteLine("请正确的输入数字");
            if(i1>i2)
            {
                int i3 = i1;//随机取值是第一个数要比第二个数大
                i1 = i2;
                i2 = i3;
            }
           num1 = ran.Next(i1, i2);
           num2 = ran.Next(i1, i2);
           if (num1 > num2)
           {
               int i3 = num1;//第一个数要比第二个大
               num1 = num2;
               num2 = i3;
           }
           sign = ran.Next(1, 5);//问题在这里啊,Next()方法的范围包含前面个数,不包含后那个数,改处改成现在这样子,并把switch中default补上防患未然,尽量不用goto...
           switch (sign)
           {
               case 1://用来代替加法
                   Console.WriteLine("{0}+{1}=",num1,num2);
                   num3 = num1 + num2;
                   fruit(num3);
                   break;
               case 2://用来代替减法
                   Console.WriteLine("{0}-{1}=", num1, num2);
                   num3= num1 - num2;
                   fruit(num3);
                   break;
               case 3://用来代替乘法
                   Console.WriteLine("{0}*{1}=", num1, num2);
                   num3 = num1 * num2;
                   fruit(num3);
                   break;
               case 4://用来代替除法
                   Console.WriteLine("{0}/{1}=", num1, num2);
                   num3 = num1 /num2;
                   fruit(num3);
                   break;
               default:
                   Console.WriteLine("程序异常,请关闭重新运行!");
                   break;
           }
           Console.ReadKey();
        }
        /// <summary>
        /// 用来比较结果
        /// </summary>
        /// <param name="i"></param>
        static void fruit(int i)
        {
            int num;
            Console.WriteLine("请输入结果");
            start:
            if (!int.TryParse(Console.ReadLine(), out num))
            {
                Console.WriteLine("输入错误\n请重新输入数字");
                goto start;
            }
            if (i == num)
                Console.WriteLine("答案正确");
            else
            {
                Console.WriteLine("答案错误\n请重新输入结果");
                goto start;
            }
        }
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马