我在一个基本的编程类,并且一切都在伪代码完成。

我的问题是:你如何连接两个数组?

我有一个一维数组,列出学生的名字,和我有一个二维数组,列出每个学生的前八名成绩......这是所有罚款和花花公子,但现在我需要的数组进行排序由学生的名字。我在线上戳周围,并通过书籍阅读本章两次,它只是简单地提到了连接两个数组,但目前尚无实例。

如果它的任何帮助,我们使用冒泡排序,而这正是我相当熟悉......我的名字排序,这是比较容易的部分,但我不知道怎么的成绩如此排序他们不出去的订单。

感谢您的输入!

旁注:我想通了!最后我做格雷格Hewgill是如何提及。当我把我的意见给他的建议,我开始随意扔在代码行,直到这个想法打我......它看起来并不漂亮(一个模块交换的名字,另一个交换档次,第三甚至然后以交换学生个人成绩早前在一个多维数组),但它确实似乎工作......没有办法测试它的语言,因为我没有编译器也没有我足够的知识,使伪代码转换成实际的代码,如果我是下载一个,但它听起来在纸上真的好我打出来的!

由于我也是在说明中提到,我也感谢大家的迅速和有益的见解,其实我压根没想到我会得到一个答复,今晚,再次感谢大家对你的帮助!

杰弗里

有帮助吗?

解决方案

你可能想要做的是:当你整理的名字,你必须交换两个位置,做的相同的互换得分在数组中。这样一来,您对姓名阵列的所有更改会反映在分数阵列英寸当您完成后,分数将在相同的排序顺序的名称。

有与不同的数据结构这样做的更有效的方法,因为其他意见将显示。

其他提示

定义一个简单的Student类是这样的:

public class Student : IComparable<Student>
{
    public string Name { get; set; }
    public int[] Scores { get; set; }

    #region IComparable<Student> Members

    public int CompareTo(Student other)
    {
        // Assume Name cannot be null
        return this.Name.CompareTo(other.Name);
    }

    #endregion
}

然后甚至更简单的

    var students = new[] {
        new Student(){ Name = "B", Scores = new [] { 1,2,3 } },
        new Student(){ Name = "C", Scores = new [] { 3,4,5 } },
        new Student(){ Name = "A", Scores = new [] { 5,6,7 } }
    };

    Array.Sort(students);

将做的工作适合你。

您的前提是错误的。你不应该有在第一位置2个数组。

您应该具有的对象的,其中的每一个持有学生的名字和他的得分一个数组:

public class Record
{
    public string Student;
    public int[] Scores;
} 

有两种方法:第一,排序的名称时,每次交换两个名字的时候,交换(无论你想打电话给他们列或)的分数,在相同位置的行。在结束时,将得分仍然应该是与名称同步。

其次,代替排序的名称,创建一个第三阵列将包含索引到其它两个阵列,最初为0至n-1,但随后进行排序,比较名称[a]和名称并[b],代替排序名称阵列本身。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top