c#用二维数组存放一个班级(10人)的语文、数学、外语成绩,接下来编写一个程序分别求出各科成绩中的平均值、最大值、最小值
时间: 2024-10-17 12:12:53 浏览: 14
在C#中,你可以使用二维数组来模拟一个班级的语文、数学、外语成绩。假设每个学生有三个成绩,可以创建一个`int[10][3]`类型的数组。下面是一个简单的示例:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
// 定义一个班级的二维数组,假设每个学生都有语文、数学和外语的成绩
int[,] classScores = new int[10, 3];
// 分别填充学生的成绩
for (int i = 0; i < 10; i++)
{
classScores[i, 0] = GetSubjectScore("语文", i); // 语文成绩
classScores[i, 1] = GetSubjectScore("数学", i); // 数学成绩
classScores[i, 2] = GetSubjectScore("外语", i); // 英语成绩
}
// 计算各科成绩的平均值、最大值、最小值
double[] avgScores = CalculateAverage(classScores);
int[] maxScores = FindMaxValues(classScores);
int[] minScores = FindMinValues(classScores);
Console.WriteLine("语文平均分:{0}", avgScores[0]);
Console.WriteLine("数学平均分:{0}", avgScores[1]);
Console.WriteLine("外语平均分:{0}", avgScores[2]);
Console.WriteLine("语文最高分:{0}", maxScores[0]);
Console.WriteLine("数学最高分:{0}", maxScores[1]);
Console.WriteLine("外语最高分:{0}", maxScores[2]);
Console.WriteLine("语文最低分:{0}", minScores[0]);
Console.WriteLine("数学最低分:{0}", minScores[1]);
Console.WriteLine("外语最低分:{0}", minScores[2]);
Console.ReadLine();
}
// 获取单个学生某科的成绩
static int GetSubjectScore(string subject, int studentId)
{
// 这里只是一个示例,实际需要填充随机数据或者用户输入
return 85; // 返回一个假分数
}
// 计算平均值
static double[] CalculateAverage(int[,] scores)
{
double[] averages = new double[3];
int totalStudents = scores.GetLength(0);
for (int j = 0; j < 3; j++)
{
int sum = 0;
for (int i = 0; i < totalStudents; i++)
sum += scores[i, j];
averages[j] = (double)sum / totalStudents;
}
return averages;
}
// 查找最大值
static int[] FindMaxValues(int[,] scores)
{
int[] maxValues = new int[3];
int[] columns = { 0, 1, 2 }; // 代表语文、数学和外语
foreach (int col in columns)
{
maxValues[col] = int.MinValue;
for (int i = 0; i < scores.GetLength(0); i++)
if (scores[i, col] > maxValues[col])
maxValues[col] = scores[i, col];
}
return maxValues;
}
// 查找最小值
static int[] FindMinValues(int[,] scores)
{
int[] minValues = new int[3];
int[] columns = { 0, 1, 2 };
foreach (int col in columns)
{
minValues[col] = int.MaxValue;
for (int i = 0; i < scores.GetLength(0); i++)
if (scores[i, col] < minValues[col])
minValues[col] = scores[i, col];
}
return minValues;
}
}
```
阅读全文