为啥第二个for循环的if语句中,将intB变成Arry[0]就不能输出结果了呢


namespace 一维数组的最大值和最小值等
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] Arry = new int[] {4,5,9,5,3,1,7,5 };
            int temp;
            int intA = 0;
            int intB=Arry[0];
            int sum=0;
            int p;
            for (int i = 0; i < Arry.Length; i++)//排序
            {
                temp = i;
                for (int j = i + 1; j < Arry.Length; j++)
                {
                    if (Arry[j] > Arry[temp])
                    {
                        temp = j;
                    }
                }
                if (temp != i)
                {
                    intA = Arry[i];
                    Arry[i] = Arry[temp];
                    Arry[temp] = intA;
                }
            }
            Console.WriteLine("排序后输出如下:");
            foreach (int k in Arry)
            {
                Console.Write("{0}",k);
            }
            Console.WriteLine();


            for (int n = 0; n < Arry.Length; n++)//求和
            {
                if (intB < Arry[n])//为什么将intB换成Arry[0],不能得到最大值
                {
                    intB= Arry[n];
                    Console.WriteLine("{0}",intB);
                }
                sum = sum + Arry[n];
            }
            p = sum / Arry.Length;//算平均数
            //Console.WriteLine("数组总数是:{0}    平均数是:{1}    最大值是:{2}",sum,p,intB);
        }
    }
}

因为intB里存的是最大值,Arry[0]里的值一直不变呀
你要把if里的值换了,那么后面赋值也得跟着换,Arry[0]= Arry[n]
你用笨理去想啊,假如一个狗熊摘苞米,它只能拿两个,所以见到一个比手里苞米大的就把手里的扔掉
那你总要去跟手里的比大小,不能总跟你看见的第一个苞米去比大小啊

  • 以下回答由chatgpt基于相关博客总结生成:

    很抱歉,根据参考资料和问题描述无法得知具体在编写什么程序或代码时遇到的问题,因此无法提供解决方案。需要更具体的信息和上下文来解决问题。关于第二个for循环中if语句的条件和逻辑,也需要更多的信息来进行解释。同时,没有提供样例数据,也不能具体说明输出结果应该是什么。如果提供更具体的问题描述和上下文信息,我将尽力给出解决方案。