C# 使用什么来代替null static int min(int[]arr,int a) { int min=arr[0]; for(int i=1;i
} 所以这段代码读取2到10个数字,然后写出其中第二个最小的数字。您可以用0键取消输入数字。如果无法写出第二个最小的数字(例如,所有输入的数字都是5),则不会写出任何数字)C# 使用什么来代替null static int min(int[]arr,int a) { int min=arr[0]; for(int i=1;i,c#,C#,} 所以这段代码读取2到10个数字,然后写出其中第二个最小的数字。您可以用0键取消输入数字。如果无法写出第二个最小的数字(例如,所有输入的数字都是5),则不会写出任何数字) 但是我发现我们不能使用空值,那么我可以用什么来代替它呢?谢谢 将min2变量初始化为0,然后在需要搜索最小值且不使用可为空的整数时对其进行测试 static int min(int[] arr, int a) { int min = arr[0]; for (int i = 1; i
但是我发现我们不能使用空值,那么我可以用什么来代替它呢?谢谢 将min2变量初始化为0,然后在需要搜索最小值且不使用可为空的整数时对其进行测试
static int min(int[] arr, int a)
{
int min = arr[0];
for (int i = 1; i < a; i++)
if (arr[i] < min)
min = arr[i];
return min;
}
static void Main(string[] args)
{
int[] arr = new int[10];
int i;
Console.WriteLine("Vnesi števila: ");
for (i = 0; i < 10; i++)
{
int stevilo = int.Parse(Console.ReadLine());
if (stevilo == 0)
break;
arr[i] = stevilo;
}
if (i < 2)
{
Console.WriteLine("Napaka - premalo števil!");
Console.ReadKey();
return;
}
int min1 = min(arr, i);
int? min2 = null;
for (int j = 0; j < i; j++)
{
int stevilo = arr[j];
if(stevilo != min1 && (min2 == null || stevilo < min2))
min2 = stevilo;
}
if(min2 == null)
Console.WriteLine("Napaka - vsa števila enaka!");
else
Console.WriteLine("Drugo najmanjše: " + min2.ToString());
Console.ReadKey();
}
}
如果用户键入的内容无法转换为整数,则使用Int32.TryParse可以避免出现异常。好吧,这是一个奇怪的约束,但一旦有了它,就只需使用
bool
标志,或者min2
必须与min1
不同
int stevilo;
string userInput = Console.ReadLine();
if(!Int32.TryParse(userInput, out stevilo) || stevilo == 0)
break;
arr[i] = stevilo;
/。。。
int min1=最小值(arr,i);
int min2=min1;
对于(int j=0;j
为什么不能使用null
?是什么阻止了这一点?学校不允许它?你想用null实现什么?很好地阅读了代码,我有点忘记了,因为我在一个月前写的,我只知道它是有效的:(不能使用这些元素是的,数组的元素会自动初始化为零,因此当您需要停止、更新时,这也可以用作指示牌。)
int stevilo;
string userInput = Console.ReadLine();
if(!Int32.TryParse(userInput, out stevilo) || stevilo == 0)
break;
arr[i] = stevilo;
// ...
int min1 = min(arr, i);
int min2 = min1;
for (int j = 0; j < i; j++)
{
int stevilo = arr[j];
if(stevilo != min1 && (min2 == min1 || stevilo < min2))
min2 = stevilo;
}
if(min2 != min1)
Console.WriteLine("Napaka - vsa števila enaka!");
else
Console.WriteLine("Drugo najmanjše: " + min2.ToString());