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
你把max=score[0];放到For 循环的外面,不然每进行一次循环,都会重新赋值.
你这个每次循环都是先把score[0]的值赋给max变量,然后再进行if条件选择,所以循环执行到倒数第二个数据的时候,89<93成立,93对应的i被赋值给j 。而循环到最后一个,85<93不成立,就不交换,所以结果就是93
你把max=score[0]放到循环外面就行了