自己练习写的--C#基础篇十小练习03

//自学无聊写的,简直对不起当年的老师

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)
        {
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值