黑马程序员技术交流社区
标题:
帮我试试到底是什么问题
[打印本页]
作者:
nilaoyededie
时间:
2013-6-18 10:24
标题:
帮我试试到底是什么问题
本帖最后由 nilaoyededie 于 2013-6-18 13:43 编辑
自己想的!只能做到这样了!
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;
}
}
}
你可以加个循环
作者:
陈壹
时间:
2013-6-18 10:46
sign = ran.Next(0, 4); 取得是0到3.,你哪来的case 4,当sign=0是不就错了
作者:
wanghuailin1030
时间:
2013-6-18 11:00
Random rand = new Random();有三个重载方法
int value=rand.Next(35);返回小于35的非负随机数。
rand.next()返回非负随机数
rand.next(minvalue,maxvalue)返回两者之间的随机数。返回的值范围包括 minValue 但不包括 maxValue。如果 minValue 等于 maxValue,则返回 minValue。
所以,你的“sign = ran.Next(0, 4);//随机四个数来代替四个运算符”产生的是0、1、2、3四个数,下面判断没有0所以,产生错误,直接退出
作者:
nilaoyededie
时间:
2013-6-18 13:43
谢谢你们!记错了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2