我无法让程序正确打印数字并正确排序。我需要帮助才能使程序正常运行。这个项目的截止日期是今晚12点。请帮忙
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sort
{
class Program
{
static void Main(string[] args)
{
List<int> ints = new List<int>() { };
int sort = 0;
for (int i = 1; i > 0; i++)
{
Console.WriteLine("Enter a number");
int number = Convert.ToInt32(Console.ReadLine());
if (number == -1)
break;
{
for (int j = 0; j > ints.Count; j++)
{
if (ints[i] < ints[j])
{
sort = ints[j];
ints[j] = ints[i];
ints[i] = sort;
Console.WriteLine(ints[i].ToString());
}
}
}
}
}
}
}
答案 0 :(得分:0)
最好是询问有关问题性质的具体问题以及您希望解决的问题。
但是看着你的代码,我看到了一些奇怪的行为。您似乎在滥用for
循环以永久循环并向用户询问数字。如果数字不是-1
,则循环空白List<int>
并在执行交换后打印每一行,如果内部循环的索引值大于外部循环。
如果输入为-1,那么您将退出循环并结束程序。
你的问题似乎从来没有任何数字要排序吗?是你的排序得到一个超出范围的索引,因为你从i == 1开始,但数组的索引从0开始?是不是你在没有先完成排序的情况下编写数字?以上所有?
最好通过查找一些解释冒泡排序流程的伪代码然后自己实现它来获得最佳服务。如果做不到这一点,你可以通过简单的互联网搜索轻松找到冒泡排序的C#实现。
但为了给你一个快速启动,我的猜测是你的意思:
编辑:既然您曾就如何修复程序寻求帮助,我将为您提供以下未经测试的代码,以帮助您入门。您需要根据“工作”说明实施冒泡排序。
static void Main(string[] args)
{
List<int> ints = new List<int>();
//capture numbers from user input
while(true)
{
Console.WriteLine("Enter a number");
int number = Convert.ToInt32(Console.ReadLine());
if (number == -1) //If user enters magic number, we break out of while loop
break;
ints.Add(number); //Unless we've broken out, add the number to the list
}
//do your bubble sort here
//this is up to you to implement!
//print the results
foreach(int sortedNumber in ints)
{
Console.WriteLine(sortedNumber);
}
}
答案 1 :(得分:-2)
如果您想在C#中对列表进行排序,可以使用List的内置方法:
List<int> list = new List();
// add some elements
list.Sort();