两道c#入门题目思路讲解——按三科总成绩由高分到低分进行输出和统计出各个班的语文平均分并输出
两道c#入门题目思路讲解
第一题:
下面是一班同学的期末考试成绩,请按三科总成绩由高分到低分进行输出。
输出格式示例为
赵八,总分256,语文70,英文77,数学86
王五,总分222,语文72,英文88,数学79
代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;//本代码使用VS2017版本运行
namespace sortoutput//命名空间
{
class Program
{
static void Main(string[] args)
{
string[] name = new string[] { "张三", "李四", "王五", "陈七", "赵八", "吴九", "陆十" };
//如果班级人数不确定的haul可以新建数组接受人数以及姓名
int[] sum = new int[name.Length];
//设定长度为name.Length可以随着上面人数的变化而变化,不用多次更改
int[] Chinese = new int[name.Length];
int[] English = new int[name.Length];
int[] math = new int[name.Length];
int sum1 = 0;
for (int i = 0; i < name.Length; i++)
{
Console.WriteLine("请输入第" + (i + 1) + "位同学的分数");
Console.Write("请输入语文分数:");
Chinese[i] =int.Parse(Console.ReadLine());
sum1 += Chinese[i];
Console.Write("请输入英语分数:");
English[i] = int.Parse(Console.ReadLine());
sum1 += English[i];
Console.Write("请输入数学分数:");
math[i] =int.Parse(Console.ReadLine());
sum1 += math[i];
sum[i] = sum1;
sum1 = 0;
//在这个地方要强制sum=0,因为在循环的过程中sum1要求初值始终为0,否则sum的值错误
}
int temp = 0,temp1=0,temp2=0,temp3=0;
string temp0=" ";
for (int i1 = 0; i1 < sum.Length - 1; i1++)
{
for (int i2 = i1+1; i2 <sum.Length ; i2++)
{
if (sum[i1] < sum[i2])
{
temp =sum[i1];
sum[i1] = sum[i2];
sum[i2] = temp;
temp1 = Chinese[i1];
Chinese[i1] =Chinese[i2];
Chinese[i2] = temp1;
temp2 = English[i1];
English[i1] =English[i2];
English[i2] = temp2;
temp3 = math[i1];
math[i1] = math[i2];
math[i2] = temp3;
temp0 = name[i1];
name[i1] = name[i2];
name[i2] = temp0;
}
}
}
//简单的两重for循环的冒泡排序方法
for (int i0 = 0; i0 < sum.Length; i0++)
{
Console.WriteLine("{0},总分{1},语文{2},英语{3},数学{4}", name[i0],
sum[i0], Chinese[i0], English[i0], math[i0]);
}
}
}
}
运行结果展示:
第二题:
小学老师张老师,需要统计班上同学的语文平均分,有多个班,且每个班的人数不一样,请设计一个程序,可以
1供张老师输入各个班同学的语文成绩
2统计出各个班的语文平均分并输出
代码展示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace projGetMaxScore
{
class Program
{
static void Main(string[] args)
{
int classnum = 0;
Console.Write("请输入要录入成绩的班级个数:");
classnum = int.Parse(Console.ReadLine());
int[] _class = new int[classnum];
for (int i = 0; i <
classnum; i++)
{
int num;
Console.Write("请输入第" + (i + 1) + "个班级的人数");
num = int.Parse(Console.ReadLine());
int avg = 0;
for (int j = 0; j < num;j++)
{
int[] score = new int[num];
Console.Write("请输入第" + (j + 1) + "位同学的分数");
score[j] = int.Parse(Console.ReadLine());
avg += score[j];
}
Console.WriteLine("第" + (i + 1) + "班级的语文平均分是" + (avg/num));
}
}
}
}
运行结果展示:
取班级数为2,班级人数分别为5,2
取班级数为3,班级人数分别为4,5,3
(在这里的数据是作者自己随意添加的,读者运行代码时可以进行测试)