比喻说个数组 
int[] intArray = { 1, 3, 7, 12, 12, 6, 1, 8 };那么这个最大值的下标就是 3 ,4
       最小值的下标就是 0,6这个程序怎么写啊?

解决方案 »

  1.   

    int[] p = new int[100]; //存放所有的最大值
                int position = 0;//存放最大值的位置
               int j = 1;//存放相同最大值的位置            for (int i = 1; i < 100; i++)
                {
                    if (intArray [i] > intArray [position])
                   {
                        position = i;
                        j = 1;
                    }
                    else if (intArray [i] == intArray [position])
                    {
                        p[j++] = i;
                    }
                }
                p[0] = position;            if (j < 100)
                 {
                    p[j] = -1;
                }
                Console.WriteLine("最大值为" + intArray [position]);
                Console.WriteLine("最大值的位置为:");
                for (int i = 0; i < 100; i++)
                {
                    if (p[i] == -1)
                        break;
                    Console.WriteLine(p[i]+1);
                }
               Console.ReadLine();
      

  2.   

    private void GetMp(out string maxs,out string mins)
    {
    int max=intArray[0];
    int min=max;
    maxs="";
    mins="";
    //找出最大和最小值
    for(int i=1;i<intArray.length;i++)
    {
      if(intArray[i]>max)
       {
         max=intArray[i];
       }
        if(intArray[i]<min)
       {
         min=intArray[i];
       }
    }
    //找出下标
    for(int i=0;i<intArray.length;i++)
    {
      if(intArray[i]==max)
       {
         maxs+=i.ToString()+",";
       }
        if(intArray[i]==min)
       {
         mins+=i.ToString()+";";
       }
    }
    maxs=maxs.SubString(0,maxs.Length-1);
    mins=mins.SubString(0,mins.Length-1);
    }
      

  3.   

    用一个变量保存当前最大值,初始化为MinValue;再用一个数组保存该最大值对应的下标。用一个循环逐一取数据与当前最大值比较,如果大于,则更新当前最大值,并清空下标数组;如果等于,则将下标添加到数组中;如果小于则不做任何处理。
      

  4.   

    用栈作就行,当值>max或<min,清空栈,将当前值入栈,=max或=min时入栈。
      

  5.   

    参考:        static void Main(string[] args)
            {
                int[] intArray = { 1, 3, 7, 12, 12, 6, 1, 8 };
                MyClass max = new MyClass(intArray[0]);
                MyClass min = new MyClass(intArray[0]);
                for (int i = 0; i < intArray.Length; i++)
                {
                    int j = intArray[i];
                    if (j > max.Value)
                    {
                        max.Value = j;
                        max.Indexes.Clear();
                        max.Indexes.Add(i);
                    }
                    else if (j < min.Value)
                    {
                        min.Value = j;
                        min.Indexes.Clear();
                        min.Indexes.Add(i);
                    }
                    else if (j == max.Value)
                        max.Indexes.Add(i);
                    else if (j == min.Value)
                        min.Indexes.Add(i);
                }
                Console.WriteLine("最大值为:{0},索引为:", max.Value);
                foreach (int i in max.Indexes)
                    Console.Write("{0} ", i);
                Console.WriteLine();
                Console.WriteLine("最小值为:{0},索引为:", min.Value);
                foreach (int i in min.Indexes)
                    Console.Write("{0} ", i);
            }        class MyClass
            {
                private int value;
                public int Value
                {
                    get { return value; }
                    set { this.value = value; }
                }            private List<int> indexes;
                public List<int> Indexes
                {
                    get { return indexes; }
                    set { indexes = value; }
                }            public MyClass(int value)
                {
                    this.value = value;
                    indexes = new List<int>();
                    indexes.Add(0);
                }
            }
    /*
    输出:
    最大值为:12,索引为:
    3 4
    最小值为:1,索引为:
    0 6 
    */
      

  6.   


    好贴,但只考虑了数据是1 * k的情况,有没有考虑m*n的情况?即(int[][])