我需要帮助编写一个程序,该程序接收三个单独字段(ID Number, first name, last name)
的学生信息。然后,根据last name
字段按字母顺序对表格进行排序。用户将输入学生数据,然后我希望将last name
数据分成两个桶,然后将这些桶放入冒泡排序中。我无法将数据添加到单独的存储桶中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _123_Assignment2
{
using System;
using static System.Console;
class Program
{
struct student
{
public int studentId;
public string firstName;
public string lastName;
};
static void Main(string[] args)
{
student[] studentInfo = new student[20];
string[] bucketLow = new string[0];
string[] bucketHigh = new string [0];
int x = 0;
int y = 0;
WriteLine("Enter student ID number:");
studentInfo[x].studentId = Convert.ToInt32(ReadLine());
while (studentInfo[x].studentId != 999)
{
WriteLine("Enter first name:");
studentInfo[x].firstName = ReadLine();
WriteLine("Enter last name:");
studentInfo[x].lastName = ReadLine();
x++;
WriteLine("Enter student ID number:");
studentInfo[x].studentId = Convert.ToInt32(ReadLine());
}
for (int j = 0; j < studentInfo.Length; j++)
{
if (studentInfo[j].lastName.CompareTo(studentInfo[j + 1].lastName) > 0)
bucketLow[y] = studentInfo[j].lastName;
else
bucketHigh[y] = studentInfo[j].lastName;
y++;
}
}
}
}
答案 0 :(得分:0)
试试此代码,您可以查看我的评论以获得解释:
student[] studentInfo = new student[20];
//Make sure you initialize the correct number of variables on your string
string[] bucketLow = new string[20];
string[] bucketHigh = new string[20];
int x = 0;
int y = 0;
//I commented out this line since you are already asking for inputs on without going on your counter scenario
//Console.WriteLine("Enter student ID number:");
//studentInfo[x].studentId = Convert.ToInt32(Console.ReadLine());
//I made changes on this line, since, you are doing a condition based on the number of increment on your counter
while (x <= 2)
{
//I put the enter student ID above since it will not be counted if it was put after the counter x
Console.WriteLine("Enter student ID number:");
studentInfo[x].studentId = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter first name:");
studentInfo[x].firstName = Console.ReadLine();
Console.WriteLine("Enter last name:");
studentInfo[x].lastName = Console.ReadLine();
x++;
}
for (int j = 0; j < x; j++)
{
//Make sure you put group all your conditions on round brackets to achieve your desired condition
if ((studentInfo[j].lastName.CompareTo(studentInfo[j + 1].lastName)) > 0)
bucketLow[y] = studentInfo[j].lastName;
else
bucketHigh[y] = studentInfo[j].lastName;
y++;
}