class Program
{
static int MaxValue(int[] intArray,out int maxIndex)
{
int maxVal = intArray[0];
maxIndex = 0;
for (int i = 1; i < intArray.Length; i++)
{
if (intArray[i] > maxVal)
maxVal = intArray[i];
maxIndex = i;
}
return maxVal;
}
static void Main(string[] args)
{
int maxIndex;
int[] myArray ={ 1, 8, 3, 6, 2, 5, 9, 3, 0, 2,4,5,9 };
Console.WriteLine("The maximum value in myArray is {0}", MaxValue (myArray ,out maxIndex ));
Console.WriteLine("The first occurrence of this value is at element {0}", maxIndex+1 );
Console.ReadKey();
}
}
}
{
static int MaxValue(int[] intArray,out int maxIndex)
{
int maxVal = intArray[0];
maxIndex = 0;
for (int i = 1; i < intArray.Length; i++)
{
if (intArray[i] > maxVal)
maxVal = intArray[i];
maxIndex = i;
}
return maxVal;
}
static void Main(string[] args)
{
int maxIndex;
int[] myArray ={ 1, 8, 3, 6, 2, 5, 9, 3, 0, 2,4,5,9 };
Console.WriteLine("The maximum value in myArray is {0}", MaxValue (myArray ,out maxIndex ));
Console.WriteLine("The first occurrence of this value is at element {0}", maxIndex+1 );
Console.ReadKey();
}
}
}
{
maxIndex = i;
} 肯定是13吗
for (int i = 1; i < intArray.Length; i++)
{
if (intArray[i] > maxVal)
maxVal = intArray[i];
maxIndex = i; //他不是13是什么啊,搞不懂你要干什么啊
}
好好去学习一下排序啊,选择,昌泡,插入,归并
{ //少了这两括号了吧
maxVal = intArray[i];
maxIndex = i;
} //少了这两括号了吧
if (intArray[i] > maxVal)
maxVal = intArray[i];
maxIndex = i;
正确的应该是:
if (intArray[i] > maxVal)
{
maxVal = intArray[i];
maxIndex = i;
}
原因:错误的写法导致意思错误
if语句省略{}只会包含之后的一行代码。
所以maxIndex = i;在循环中每次都会执行,
所以结果为循环的最后索引,输出时maxIndex+1=13
{ //少了这两括号了吧
maxVal = intArray[i];
maxIndex = i;
} //少了这两括号了吧