Итак, я сейчас работаю над домашним заданием, но мне трудно придумать рабочую программу для цели моей домашней работы. Как это работает, я ввожу имена своих классов, их студенческие идентификаторы (только числа) и их оценку по предмету. В финале должны быть указаны имя, удостоверение личности учащегося и его наивысшая оценка по предмету.

        static void Main(string[] args)
        {
            int counter = 0;
            int number = 0;
            int largest = 0;
            int studentid = 0;

                for (counter = 0; counter < 10; counter++)
                {
                    Console.WriteLine("Please enter student name: ");
                    string studentname = Convert.ToString(Console.ReadLine());
                    Console.WriteLine("Please enter student ID no.: ");
                    studentid = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter student's FoP Prelim Grade: ");
                    number = Convert.ToInt32(Console.ReadLine());

                if (counter == 0)
                    {
                        largest = number;
                    }
                    else
                    {
                    if (number > largest)
                        largest = number;
                    }
                }

            Console.WriteLine("{0}, Student ID: {1}, Has the highest grade of {3}", studentname, studentid, number);
        }

Прошу прощения, если мои коды кажутся беспорядочными, и заранее спасибо!

0
dan peralta 15 Окт 2021 в 13:34

2 ответа

Лучший ответ

Если вы хотите использовать самый простой способ, вы можете сохранить значения в таких переменных:

    static void Main(string[] args)
    {
        int bestGrade = 0;
        int bestStudentid = 0;
        string bestStudentname = "";

        for (var counter = 0; counter < 10; counter++)
        {
            Console.WriteLine("Please enter student name: ");
            var studentname = Console.ReadLine();
            Console.WriteLine("Please enter student ID no.: ");
            var studentid = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Please enter student's FoP Prelim Grade: ");
            var grade = Convert.ToInt32(Console.ReadLine());

            if (counter == 0)
            {
                bestGrade = grade;
            }
            else
            {
                if (grade > bestGrade)
                {
                    bestGrade = grade;
                    bestStudentid = studentid;
                    bestStudentname = studentname;
                }
            }
        }

        Console.WriteLine($"{bestStudentname}, Student ID: {bestStudentid}, Has the highest grade of {bestGrade}");
    }

Если вы хотите сохранить все, вы должны сохранить их в списке или массиве и распечатать с индексом самой большой оценки.

0
Presi 15 Окт 2021 в 10:46

Если вы просто пытаетесь распечатать имя, идентификатор и балл студента с наивысшим баллом, вы можете сделать это, сохранив все параметры в отдельных массивах. Например, имена в массиве строк, идентификаторы и оценки в массивах int. Все они будут иметь одинаковую длину массива, и поэтому вы можете перебирать массив оценок, чтобы найти наибольшую оценку, а затем распечатать имя и идентификатор, используя этот индекс в своем операторе Console.WriteLine.

0
MFerguson 15 Окт 2021 в 10:42