自己练习极速赛车平台开发写的--C#基础篇十小练习

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

猜你喜欢

转载自blog.51cto.com/13855347/2136919