为了账号安全,请及时绑定邮箱和手机立即绑定

为什么跑出来结果不一样呢?

using System;

using System.Collections.Generic;

using System.Text;


namespace projGetMaxScore

{

    class Program

    {

        static void Main(string[] args)

        {

            string[] name = new string[]{"吴松","钱东宇","伏晨","陈陆","周蕊","林日鹏","何昆","关欣"};

            int[] score = new int[]{89,90,98,56,60,91,93,85};

            int max,i,j;

            for(i=1,j=1;i<score.Length;i++){

                max=score[0];

                if(max<score[i]){

                    max=score[i];

                    j=i;

                }

            }

            Console.WriteLine("分数最高的是{0},分数是{1}",name[j],score[j]);

        }

    }

}

结果:分数最高的是何昆,分数是93

正在回答

4 回答

你把max=score[0];放到For 循环的外面,不然每进行一次循环,都会重新赋值.

1 回复 有任何疑惑可以回复我~

你这个每次循环都是先把score[0]的值赋给max变量,然后再进行if条件选择,所以循环执行到倒数第二个数据的时候,89<93成立,93对应的i被赋值给j 。而循环到最后一个,85<93不成立,就不交换,所以结果就是93

0 回复 有任何疑惑可以回复我~

你把max=score[0]放到循环外面就行了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么跑出来结果不一样呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信