有两个数组怎么筛选各自需要的
if (String.Compare(info[i, 1], score) > 0) { score = info[i, 1]; name = info[i, 0]; 请问这串代码代表什么?
if (String.Compare(info[i, 1], score) > 0) { score = info[i, 1]; name = info[i, 0]; 请问这串代码代表什么?
2017-06-24
你好,这个题目 可以分成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);
不知道我这样讲,你明白不,如果有回复我,祝你学习顺利!
举报