浙江大学PAT---Basic Level---1004----成绩排名

本文介绍了一个解决 PAT-B 实践赛 1004 题目的 C# 程序实现。该程序读取学生姓名、学号及成绩,找出并输出最高分和最低分的学生信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:http://pat.zju.edu.cn/contests/pat-b-practise/1004

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PAT_1004
{
    
    class Program
    {
        struct Stu_Info
        {
            public string name;
            public string school_number;
            public int score;
        };

        static void Main(string[] args)
        {
            Console.WriteLine("请输入学生人数:");
            int num_stu;
            num_stu=int.Parse(Console.ReadLine());

            Stu_Info[] students = new Stu_Info[num_stu];
            string inputs;
            for (int i = 0; i < num_stu; i++)
            {
                inputs = Console.ReadLine();
                students[i]=GetStuInfo(inputs);
            }
            int[] index=GetHighLowScore(students);
            Console.WriteLine("{0} {1}", students[index[1]].name, students[index[1]].school_number);
            Console.WriteLine("{0} {1}", students[index[0]].name, students[index[0]].school_number);

            Console.ReadKey();
        }

        /// <summary>
        /// 从输入信息中获取学生信息
        /// </summary>
        /// <param name="info">输入信息</param>
        /// <returns>返回学生信息</returns>
        private static Stu_Info GetStuInfo(string info)
        {
            Stu_Info stu;
            int[] index = new int[2];
            for (int i = 0; i < info.Length; i++)
            {
                if (info[i] == ' ')
                {
                    if (index[0] == 0)
                    {
                        index[0] = i;
                    }
                    else
                    {
                        index[1] = i;
                    }
                }
            }
            stu.name = info.Remove(index[0]);
            info = info.Remove(0, index[0]+1);
            stu.school_number = info.Remove(index[1] - index[0]-1);
            info = info.Remove(0, index[1] - index[0]);
            stu.score = Int32.Parse(info);

            return stu;
        }

        /// <summary>
        /// 获取最高分和最低分
        /// </summary>
        /// <param name="students">学生信息</param>
        /// <returns></returns>
        private static int[] GetHighLowScore(Stu_Info[] students)
        {
            int[] index = new int[2];
            for (int i = 1; i < students.Length; i++)
            {
                if (students[i].score < students[index[0]].score)
                {
                    index[0] = i;
                }
                if (students[i].score > students[index[1]].score)
                {
                    index[1] = i;
                }
            }
            return index;
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值