-4

我无法让程序正确打印数字并正确排序。我需要帮助以使程序正常运行。这个项目的截止日期是今晚 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());
                        }
                    }
                }
            }
        }
    }
}
4

2 回答 2

0

最好是询问有关问题性质以及您希望解决的问题的具体问题。

但是查看您的代码,我看到了一些奇怪的行为。看来您正在滥用for循环来永远循环并要求用户输入一个数字。如果数字不是-1你循环一个空白List<int>并在执行交换后打印每一行,如果内部循环的索引值大于外部循环。

如果输入为 -1,那么您将跳出循环并结束程序。

你的问题是你似乎从来没有任何数字要排序吗?是不是因为您从 i == 1 开始,但数组的索引从 0 开始,所以您的排序超出了范围?是不是你在没有先完成排序的情况下写数字?上述所有的?

最好通过查找一些解释冒泡排序流程的伪代码来为您服务,然后自己实现它。如果您无法通过简单的 Internet 搜索轻松找到冒泡排序的 C# 实现。

但是为了让你有个快速的开始,我猜你的意思是:

  1. 而(真)
  2. 提示用户输入号码
  3. if number != -1 将数字存储到数组中
  4. 重复直到 number == -1 这将打破 while 循环
  5. 基于冒泡排序对列表或数组的元素进行排序
  6. 循环排序的元素并将它们打印出来

编辑:由于您就如何修复程序寻求帮助,我将为您提供以下未经测试的代码以帮助您入门。您需要根据您的“工作”说明实施冒泡排序。

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);
    }
}
于 2013-11-04T23:24:07.810 回答
-2

如果您想在 C# 中对列表进行排序,可以使用 List 的内置方法:

List<int> list = new List();

// add some elements

list.Sort();
于 2013-11-04T22:34:26.707 回答