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

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

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

正在回答

2 回答

你好,这个题目 可以分成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);

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

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

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]);


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

举报

0/150
提交
取消

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

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