主函数里:
int[] nn = { 2, 4, 5, 6, 7, 9, 8 };
int max = Max(nn);
Console.WriteLine("最大的数是"+max);
Console.ReadKey();
方法:
public static int Max(params int[] num)
{
int max=num[0];
for (int i = 0; i < num.Length; i++)
{
if (num < num[i + 1])
{
max = num[i + 1];
}
}
return max;
}作者: 李云飞 时间: 2013-5-29 23:28
楼主你的Max方法应该改为下面的:
public static int Max(params int[] num)
{
int max=num[0];//假设数组中的第一个元素是最大值
for (int i = 0; i < num.Length-1; i++)//楼主你的循环次数为(num.Length)这样数组的角标就会越界,循环次数为(num.Length-1)因为 数组中最大数的角标值为数组的长度减1
{
if (max < num[i])//用我们假定的最大值去与数组中的每一个元素经行比较
{
max = num[i];//假如我们开始假定的最大值比数组中角标为i的元素的值小,则把我们开始假定的最大值用现在的值代替
}