gpt4 book ai didi

C# - 检查一个值在数组中出现的次数并查找索引

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:54 25 4
gpt4 key购买 nike

我必须编写一个简单的程序,您必须在其中输入学生姓名和他们的平均成绩,然后打印出最高平均成绩及其所属的人。这里有几个主题是关于如何查找值是否出现在数组中的。我正在努力解决的问题是,如果平均成绩最高的学生超过 1 名,该怎么办。

这是我目前所拥有的:

        Console.WriteLine("Enter the overall count of students.");


int stuCount = Convert.ToInt32(Console.ReadLine());
string[] name = new string[stuCount];
double[] avg = new double[stuCount];

for (int i = 0; i < stuCount; i++)
{
Console.WriteLine("Enter the name of student # {0}.", i + 1);
name[i] = Console.ReadLine();
Console.WriteLine("Enter the average grade of {0}.", name[i]);
avg[i] = Convert.ToDouble(Console.ReadLine());
}

// Finding the max average
double maxAvg = avg[0];
for (int i = 1; i < stuCount; i++)
{
if (avg[i] > maxAvg)
{
maxAvg = avg[i];
}
}

// Displaying the max average
Console.WriteLine("The highest average grade is {0}.", maxAvg);

那么,我可以使用 Array.IndexOf() 方法来查找多个索引吗?

谢谢。

最佳答案

考虑使用类来表示成绩;

class Grade {
public String Name {get;set;}
public double Average {get;set;}
}

那么你的代码可以更像;

Console.WriteLine("Enter the overall count of students.");

int stuCount = Convert.ToInt32(Console.ReadLine());

List<Grade> allGrades = new List<Grade>();

for (int i = 0; i < stuCount; i++)
{
Console.WriteLine("Enter the name of student # {0}.", i + 1);
var name = Console.ReadLine();
Console.WriteLine("Enter the average grade of {0}.", name[i]);
var avg = Convert.ToDouble(Console.ReadLine());
Grade current = new Grade(){
Name = name,
Average = avg
};
allGrades.Add(current);
}

// Finding the max average
double maxAvg = allGrades.Max(g => g.Average);
var highestGrades = allGrades.Where(g => g.Average == maxAvg);

Console.WriteLine("The following Student(s) have the highest average grade:");
foreach(var grade in highestGrades){
// Displaying the max average
Console.WriteLine("Student: {0}. Grade: {1}.", grade.Name, grade.Average);
}
}

关于C# - 检查一个值在数组中出现的次数并查找索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com