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

来源:6-1 练习题目

脸盲又路痴呢

2019-01-12 17:01

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

写回答 关注

3回答

  • 景淮Maple
    2019-02-25 12:37:54

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

  • 棋圣丶龙骑士
    2019-01-30 16:56:18

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

  • qq_慕哥6363496
    2019-01-16 13:54:01

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

C#开发轻松入门

本门课程是C#语言的入门教程,将带你轻松入门.NET开发

254118 学习 · 1459 问题

查看课程

相似问题