【发布时间】:2018-05-14 21:30:59
【问题描述】:
如上所述,我正在尝试使用并行数组向正确的用户显示正确的分数,如果学生的分数低于 40,它应该显示学生的姓名和他们的分数。
目前我已经这样做了,但它没有将分数分配给正确的名称。
代码:
static void Main(string[] args)
{
//bool YesNo = Console.ReadKey;
// Empty Variable arrays declared for usage.
int[] classScores = new int[5];
string[] studentNames = new string[5];
object[] ClassANDStudent = new object[5];
//
// if (YesNo == true)
//Loop Method for user input for student name.
for (int i = 0; i < studentNames.Length; i++)
{
Console.WriteLine("Please enter a Student Name.");
studentNames[i] = Console.ReadLine();
Console.WriteLine("Please enter marks.");
classScores[i] = Convert.ToInt32(Console.ReadLine());
}
//
var Lessthan40Array = classScores.Where(OverallMark => OverallMark <= 40).ToArray();
Array.Sort(studentNames, classScores, 0, studentNames.Length);
Array.Sort(studentNames, Lessthan40Array, 0, Lessthan40Array.Length);
for (int i = 0; i < studentNames.Length; i++)
{
ClassANDStudent[i] = studentNames[i] + " " + classScores[i];
}
//
for (int i = 0; i < Lessthan40Array.Length; i++)
{
Console.WriteLine(studentNames[i] + " " + Lessthan40Array[i]);
// Console.WriteLine(" {0,-10}: {1}", studentNames[i], Lessthan40Array[i]);
}
Console.ReadKey();
}
【问题讨论】:
-
有什么理由使用并行数组而不是简单的类来存储相关数据?
-
它通常是使用数组的一部分,所以我需要能够做到这一点我自己学到了很多,只是无法将它分类到相关字段。 (基本上是给定的任务)
-
您需要排序吗?还是您只需要显示数据? (标题提到排序,但描述只提到显示分数
-
抱歉显示它们。
-
for (int i = 0; i < studentNames.Length; i++) if (classScores[i] < 40) Console.WriteLine("Student " + studentNames[i] + " only scored " + classScores[i]);