110,551
社区成员
发帖
与我相关
我的任务
分享
//函数Maxima
static int Maxima(int[] integers, out int[] indices)
{
Debug.WriteLine("Maximum values search started.");
indices=new int[1];
int maxVal=integers[0];
indices[0]=0;
int count = 1;
Debug.WriteLine(string.Format("Maximum values initialised to {0},at element index 0.", maxVal));
for (int i = 1; i < integers.Length; i++)
{
Debug.WriteLine(string.Format("Now looking at element at index{0}",i));
if (integers > maxVal)
{
maxVal = integers[i];
count = 1;
[i]indices = new int[1];
indices[0] = i;
Debug.WriteLine(string.Format("Now maximun found,Now value is {0},at element index{1}", maxVal, i));
}
else
{
if (integers[i] == maxVal)
{
count++;
int[] oldIndices = indices;
indices=new int[count];
oldIndices.CopyTo(indices,0);
indices[count-1]=i;
Debug.WriteLine(string.Format("Duplicate maximum found at element index {0}",i));
}
}
}
Trace.WriteLine(string.Format("Maximum value {0} found,with {1} occurrences",maxVal,count));
Debug.WriteLine("Maximum values search completed.");
return maxVal;
}
//主程序
int[] testArray = { 4, 7, 4, 2, 7, 3, 7, 8, 3, 9, 1, 9 };
int[] maxValIndices;
int maxVal = Maxima(testArray, out maxValIndices);
Console.WriteLine("Maximum value {0} found at element indices:",maxVal);
foreach (int index in maxValIndices)
{
Console.WriteLine(index);
}
Console.ReadKey();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication12
{
class Program
{
static int Maxima(int[] integers, out int[] indices)
{
Debug.WriteLine("Maximum values search started.");
indices=new int[1];
int maxVal=integers[0];
indices[0]=0;
int count = 1;
Debug.WriteLine(string.Format("Maximum values initialised to {0},at element index 0.", maxVal));
for (int i = 1; i < integers.Length; i++)
{
Debug.WriteLine(string.Format("Now looking at element at index{0}",i));
if (integers[i] > maxVal)
{
maxVal = integers[i];
count = 1;
indices = new int[1];
indices[0] = i;
Debug.WriteLine(string.Format("Now maximun found,Now value is {0},at element index{1}", maxVal, i));
}
else
{
if (integers[i] == maxVal)
{
count++;
int[] oldIndices = indices;
indices=new int[count];
oldIndices.CopyTo(indices,0);
indices[count-1]=i;
Debug.WriteLine(string.Format("Duplicate maximum found at element index {0}",i));
}
}
}
Trace.WriteLine(string.Format("Maximum value {0} found,with {1} occurrences",maxVal,count));
Debug.WriteLine("Maximum values search completed.");
return maxVal;
}
static void Main(string[] args)
{
int[] testArray = { 4, 7, 4, 2, 7, 3, 7, 8, 3, 9, 1, 9 };
int[] maxValIndices;
int maxVal = Maxima(testArray, out maxValIndices);
Console.WriteLine("Maximum value {0} found at element indices:", maxVal);
foreach (int index in maxValIndices)
{
Console.WriteLine(index);
}
Console.ReadKey();
}
}
}
我现在想把line26 注销掉,但是报错,我不知道这句这这里是什么意思,
函数一开始不就初始化了么[/quote]
不为什么,out参数必须在函数内初始化(不同于ref),这是王八的屁股——规定。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication12
{
class Program
{
static int Maxima(int[] integers, out int[] indices)
{
Debug.WriteLine("Maximum values search started.");
indices=new int[1];
int maxVal=integers[0];
indices[0]=0;
int count = 1;
Debug.WriteLine(string.Format("Maximum values initialised to {0},at element index 0.", maxVal));
for (int i = 1; i < integers.Length; i++)
{
Debug.WriteLine(string.Format("Now looking at element at index{0}",i));
if (integers[i] > maxVal)
{
maxVal = integers[i];
count = 1;
indices = new int[1];
indices[0] = i;
Debug.WriteLine(string.Format("Now maximun found,Now value is {0},at element index{1}", maxVal, i));
}
else
{
if (integers[i] == maxVal)
{
count++;
int[] oldIndices = indices;
indices=new int[count];
oldIndices.CopyTo(indices,0);
indices[count-1]=i;
Debug.WriteLine(string.Format("Duplicate maximum found at element index {0}",i));
}
}
}
Trace.WriteLine(string.Format("Maximum value {0} found,with {1} occurrences",maxVal,count));
Debug.WriteLine("Maximum values search completed.");
return maxVal;
}
static void Main(string[] args)
{
int[] testArray = { 4, 7, 4, 2, 7, 3, 7, 8, 3, 9, 1, 9 };
int[] maxValIndices;
int maxVal = Maxima(testArray, out maxValIndices);
Console.WriteLine("Maximum value {0} found at element indices:", maxVal);
foreach (int index in maxValIndices)
{
Console.WriteLine(index);
}
Console.ReadKey();
}
}
}
我现在想把line26 注销掉,但是报错,我不知道这句这这里是什么意思,
函数一开始不就初始化了么