我正在尝试编写一个C#程序(在Visual Studio中),该程序将一些数字用作键盘输入,并打印其中最小和最大的数字。这是一项家庭作业,到目前为止,我打算仅使用课堂上介绍的内容。因此,我很清楚,可以使用数组以及MATH.min和max方法以更简单的方式完成此操作。但是,该程序的目的只是练习if / else逻辑。无论如何,逻辑不是我的问题。在输入最终用户输入的数字之前,下面的代码将按预期工作,然后关闭,而无需打印用于显示结果的最终写入行语句。需要解决此问题吗?谢谢!
using System;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
double maxNum = 0;
double minNum = int.MaxValue;
int numToEnter;
int enterCounter = 0;
double currentNum;
Console.Write("How many numbers will be entered?: ");
numToEnter = int.Parse(Console.ReadLine());
while (enterCounter < numToEnter)
{
Console.Write("Enter a positive number: ");
currentNum = double.Parse(Console.ReadLine());
if (currentNum >= 0)
{
if (currentNum >= maxNum)
{
maxNum = currentNum;
}
if (currentNum < minNum)
{
minNum = currentNum;
}
enterCounter++;
}
else
{
Console.Write("Please enter a positive number: ");
}
}
Console.WriteLine("The largest number is: {0}. The lowest number is: {1}", maxNum, minNum);
}
}
}
答案 0 :(得分:0)
您的问题可能与您测试程序的方式有关。我不能确定,但是解决此问题的一种方法是在主机的最后使用它。
Console.ReadLine();
您正在运行带有调试功能还是没有调试功能?我怀疑您正在运行调试程序,这将解释其发生原因。 “从调试开始”和“无调试开始”之间有区别,通常说来,调试会立即终止应用程序,而“发行版本”不会。因此,您可以使用Console.ReadLine()方法之一来停止它,但是如果您的讲师需要发布版本,那么您的代码就可以了。
F5 =运行调试 CTRL + F5 =运行而无需调试(用于发行版本),或者如果您不知道如何使用断点。
我个人建议对此实例使用for循环。
for (enterCounter; enterCounter <= numToEnter; enterCounter++)
{
//Run This code
}
答案 1 :(得分:0)
添加
Console.ReadLine();
之后
Console.WriteLine("The largest number is: {0}. The lowest number is: {1}", maxNum, minNum);