[csharp] view plain copy极速赛车平台开发论坛:haozbbs.com Q1446595067
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace P03
{
class Program
{
static void Main(string[] args)
{
Test03_01();
}
public static void Test03_01()
{
/* 请编写1个程序,该程序从控制台接收用户的输入班级的人数,
* 然后分别从控制台接收每1个人的成绩.只要有1个的成绩不合法
* (不在0-100的范围或者输入的不是整数),就提示用户重新输入该名学生的成绩.
* 当所有的学生的成绩输入完毕之后,请打印出全班平均分,
* 然后再求出去掉1个最高分和去掉1个最低分后的平均分,然后将成绩由高到低的顺序打印出来.(25分)
*/
Console.WriteLine("请输入班级人数:");
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("您输入的班级人数是 {0} ",num);
Console.WriteLine("请输入学生的成绩:");
//获取成绩,存储到score
int[] score = new int[50];
int total = 0 ;
float averge = 0;
for (int i=0;i<num;)
{
string a = Console.ReadLine();
int b = -1;
if (int.TryParse(a, out b))
{
if (b>=0&&b<=100)
{
score[i] = b;//输入数值已经转换为b
i++;
}
else
{
Console.WriteLine("请输入0-100的成绩");
//超出0-100范围的报错
}
}
else
{
Console.WriteLine("请输入正确的成绩!");
//输入不是整数报错解释
}
}
Console.WriteLine("输入完毕!");
//打印输入的成绩
Console.WriteLine("您输入的成绩是:");
for (int j = 0; j < num; j++)
{
Console.WriteLine(score[j]);
total = total + score[j];
}
//求平均值
//Console.WriteLine("全班总分是{0}",total);
Console.WriteLine("************************************************************");
Console.WriteLine(" 输入成绩完毕!");
Console.WriteLine("************************************************************");
averge = (float)total/(float) num;
Console.WriteLine("平均分是{0}", averge);
int Max_Score = score.ToArray().Max();//直接可以获取最大值,默认值是0
Console.WriteLine("最大值是{0}", Max_Score);
//计算最小值
int Min_Score =score[0];
for (int i = 0; i < num; i++)
{
if (Min_Score > score[i])
{
Min_Score = score[i];
}
}
Console.WriteLine("最小值是{0}",Min_Score);
Console.WriteLine("************************************************************");
Console.WriteLine("去掉最高分{0}最低分{1}后,",Max_Score,Min_Score);
total = total - Max_Score - Min_Score;
//num = num - 2;
averge = (float)total / (float)(num-2);
Console.WriteLine("平均分是:{0}",averge);
Console.WriteLine("************************************************************");
for (int i = 0; i < num; i++)
{
if (score[i] != Max_Score )
{
if (score[i] != Min_Score)
{
Console.WriteLine(score[i]);
}
}
}
Console.ReadKey();
}
public static void Test03_02(int[] score)
{
}
}
}
原文地址:http://blog.51cto.com/13855347/2136919
时间: 2024-10-08 04:46:27