C# 制作一个学生分数计划,将分数按数组分配给分数

C# 制作一个学生分数计划,将分数按数组分配给分数,c#,C#,嗨,我对C#programming相当陌生,我需要帮助制作一个程序来检查得分学生的数量 A(80岁及以上) B(70岁及以上) C(60岁及以上) D(50岁及以上) F(低于50) 但是我有一个指定的标记数组,所以我不能更改标记 int[] marks = new []{ 90, 40, 60, 80, 100, 20, 40, 60, 80, 90 }; 然后,我必须输出达到以下成绩的学生数量: 答:成绩为“A”的学生人数。 B:成绩为“B”的学生人数。 如果有的话,直到“F”级 如果我的

嗨,我对C#programming相当陌生,我需要帮助制作一个程序来检查得分学生的数量

A(80岁及以上) B(70岁及以上) C(60岁及以上) D(50岁及以上) F(低于50)

但是我有一个指定的标记数组,所以我不能更改标记

int[] marks = new []{ 90, 40, 60, 80, 100, 20, 40, 60, 80, 90 };
然后,我必须输出达到以下成绩的学生数量:

答:成绩为“A”的学生人数。 B:成绩为“B”的学生人数。 如果有的话,直到“F”级


如果我的问题没有说清楚,请问我任何问题。我只学了C的基础知识,比如if else,while loop,for loops,但学的不多。请注意我的英语,因为它不是我最擅长的语言。

简单使用
Count

int gradeA= marks.Count(x => x >= 80);
你也可以像这样得到其他等级的计数

或者,您也可以使用字典将范围存储为键,将计数存储为值

使用字典的解决方案

int[] marks = { 90, 40, 60, 80, 100, 20, 40, 60, 80, 90 };

Dictionary<string, int> dict = new Dictionary<string, int>()
{
    { "A", 0 },
    { "B", 0 },
    { "C", 0 },
    { "D", 0 },
    { "F", 0 }
};

for (int i = 0; i < marks.Length; i++)
{

    if (marks[i] < 50)
    {

        dict["F"] = dict["F"] + 1;
    }
    else if (marks[i] >= 50 && marks[i] < 60)
    {
        dict["D"] = dict["D"] + 1;
    }
}
int[]标记={90,40,60,80,100,20,40,60,80,90};
Dictionary dict=新字典()
{
{“A”,0},
{“B”,0},
{“C”,0},
{“D”,0},
{“F”,0}
};
for(int i=0;i=50和标记[i]<60)
{
dict[“D”]=dict[“D”]+1;
}
}

整个程序包含了大多数初学者友好的代码

// Initial scores
int[] scores = new int[] { 90, 40, 60, 80, 100, 20, 40, 60, 80, 90 };

// Marks keep track of how many times each mark was given
Dictionary<string, int> marks = new Dictionary<string, int>();
// This is a counter, so init every mark count with 0
marks.Add("A", 0);
marks.Add("B", 0);
marks.Add("C", 0);
marks.Add("D", 0);
marks.Add("F", 0);

// Go through all the scores and give marks
foreach(int score in scores)
{
    if(score >= 80)
    {
        marks["A"]++;
    }
    else if(score >= 70)
    {
        marks["B"]++;
    }
    else if(score >= 60)
    {
        marks["C"]++;
    }
    else if(score >= 50)
    {
        marks["D"]++;
    }
    else
    {
        marks["F"]++;
    }
}

// Finally output every mark
Console.WriteLine("A: " + marks["A"]);
Console.WriteLine("B: " + marks["B"]);
Console.WriteLine("C: " + marks["C"]);
Console.WriteLine("D: " + marks["D"]);
Console.WriteLine("F: " + marks["F"]);
//初始分数
int[]分数=新的int[]{90,40,60,80,100,20,40,60,80,90};
//分数记录每个分数给出的次数
字典标记=新字典();
//这是一个计数器,所以用0初始化每个标记计数
标记。添加(“A”,0);
标记。添加(“B”,0);
标记。添加(“C”,0);
标记。添加(“D”,0);
标记。添加(“F”,0);
//检查所有分数并打分
foreach(分数中的整数分数)
{
如果(分数>=80)
{
标记[“A”]+;
}
否则如果(分数>=70)
{
标记[“B”]++;
}
否则如果(分数>=60)
{
标记[“C”]++;
}
否则如果(分数>=50)
{
标记[“D”]+;
}
其他的
{
标记[“F”]++;
}
}
//最后输出每个标记
控制台写入线(“A:+标记[“A”);
控制台写入线(“B:+标记[“B”]);
控制台写入线(“C:+标记[“C”]);
控制台写入线(“D:+标记[“D”]);
控制台写入线(“F:+标记[“F”]);
如果您在理解某些概念时遇到困难,请查看一些教程:

字典:


Foreach:

您好,谢谢您的回答,但是否可以使用if-else功能找出等级a或B等的数量?是的,您也可以这样做。运行for循环,检查每个项目范围,并增加相应的计数您好,谢谢,你愿意告诉我代码是如何输入的吗?因为我对数组和其他东西还是新手,不知道如何将数组输入到forloop和if-else函数中。非常感谢。@MrKhai检查更新的答案,您可以使用代码谢谢您的解决方案。这听起来像是家庭作业,请展示你的尝试并提出具体问题。