问答详情
源自:6-1 练习题目

有两个数组怎么筛选各自需要的

if (String.Compare(info[i, 1], score) > 0)                {                    score = info[i, 1];                    name = info[i, 0]; 请问这串代码代表什么?

提问者:SansanCat 2017-06-24 15:37

个回答

  • 一念征途
    2017-06-26 17:29:58

    你好,这个题目 可以分成2个数组来写,也可以直接用一个二维数组来写。我看你的代码,应该是用二维数组写的。

    那我说下二维数组的原理: 先声明一个二维数组[8,2]. 第一位是放名字,第二位是放分数。

    如果一个人的名字的下标是 info[i, 0],那么他的分数就是info[i, 1]了;

    先把第一个人的分数 赋值给score ,把第一个人的名字赋值给name;

    然后,用score的值 依次与每个分数相比较,如果发现比score 大的话,那就说明此时下标对应的分数比score 还大,那么就把此时下标对于的分数 赋值给score ,同时也要把name的值从新赋值;如果没有score 大,就直接比较下一个就可以了。

    循环比较一遍后,此时的score 就是最大值了,name的值也就是对应的人名。

    代码:

                String[,] info = new String[,] { { "吴松", "89" }, { "钱东宇", "90" }, { "伏晨", "98" }, { "陈陆", "56" }, { "林日鹏", "60" }, { "何昆", "91" }, { "关欣", "93" }, { "吴松", "85" } };
                string name = info[0, 0];
                string score = info[0, 1];
                for (int i = 1; i < info.Length / 2; i++)
                {
                    if (String.Compare(info[i, 1], score) > 0)
                    {
                        score = info[i, 1];
                        name = info[i, 0];
                    }
                }
                Console.WriteLine(name + "的分数最大,分数为" + score);

    不知道我这样讲,你明白不,如果有回复我,祝你学习顺利! 

  • qq_AndrewVanDyK_04053920
    2017-06-25 22:17:45

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

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

                int max=scores[0];

                for(int i=0;i<scores.Length;i++)

                {

                    if(scores[i]>max)

                    {

                        max=scores[i];

                        int j=i;

                    }

                }

                Console.WriteLine("分数最高的是"+students[j]+",分数是"+scores[j]);