用C#编写一个程序,让用户输入5个唯一的数字

用C#编写一个程序,让用户输入5个唯一的数字,c#,C#,编写一个程序,要求用户输入5个数字。如果有一个数字 如果以前已输入,则显示错误消息并要求用户 再试一次。用户成功输入5个唯一的数字后,对其进行排序 并在控制台上显示结果 有人能帮我做这个吗?我真不知道该怎么解决这个问题。这是我的密码 var number = new int[5]; Console.WriteLine("Enter 5 unique numbers"); for (int i = 0; i < 5; i++) { number[i] = Convert.ToInt

编写一个程序,要求用户输入5个数字。如果有一个数字 如果以前已输入,则显示错误消息并要求用户 再试一次。用户成功输入5个唯一的数字后,对其进行排序 并在控制台上显示结果

有人能帮我做这个吗?我真不知道该怎么解决这个问题。这是我的密码

var number = new int[5];
Console.WriteLine("Enter 5 unique numbers");

for (int i = 0; i < 5; i++)
{
    number[i] = Convert.ToInt32(Console.ReadLine());
    var numberValue = number[i];

    var currentNumber = Array.IndexOf(number, numberValue);
    if (number[i] == number[0])
    {
        continue;
    }
    else
    {
        if (!(currentNumber == number[i]))
        {
            continue;
        }
        else
        {
            Console.WriteLine("Hold on, you already entered that number. Try again.");
        }
    }

    /* foreach (var n in number) { ... } */
    continue;
}

Array.Sort(number);
Console.WriteLine();

foreach (var n in number)
    Console.WriteLine(n);

Console.WriteLine();
var编号=新整数[5];
Console.WriteLine(“输入5个唯一数字”);
对于(int i=0;i<5;i++)
{
编号[i]=Convert.ToInt32(Console.ReadLine());
var numberValue=数值[i];
var currentNumber=Array.IndexOf(number,numberValue);
如果(编号[i]==编号[0])
{
继续;
}
其他的
{
if(!(currentNumber==number[i]))
{
继续;
}
其他的
{
WriteLine(“等等,你已经输入了那个号码。再试一次。”);
}
}
/*foreach(数值为n的变量){…}*/
继续;
}
数组。排序(编号);
Console.WriteLine();
foreach(数值为n的变量)
控制台写入线(n);
Console.WriteLine();
在检查是否已经输入了相同的号码时,我找不到解决方案。请帮帮我。请解释为什么这是答案

PS:你能不能只使用简单的代码而不使用HashSet这样的关键字?我知道这会解决问题,但我还不知道。我只是想一步一步地学C#,所以我很抱歉。。谢谢大家!

for(int i=0;i<5;i++)
for (int i = 0; i < 5; i++)
{
    var numberValue = Convert.ToInt32(Console.ReadLine());
    var currentNumberIndex = Array.IndexOf(number, numberValue);
    if (currentNumberIndex >= 0)
    {
        Console.WriteLine("Hold on, you already entered that number. Try again.");
        i--;
    }
    else
    {
        number[i] = numberValue;
    }
}
{ var numberValue=Convert.ToInt32(Console.ReadLine()); var currentNumberIndex=Array.IndexOf(number,numberValue); 如果(currentNumberIndex>=0) { WriteLine(“等等,你已经输入了那个号码。再试一次。”); 我--; } 其他的 { 数字[i]=数字值; } }
Array.IndexOf()
返回数组中
numberValue
的索引,或者-1(如果不存在)

让我们提取一个方法并使用
哈希集来确保数字是唯一的:

  List<Int32> Numbers=new List<Int32>();
  Console.WriteLine("Enter 5 unique numbers");

  while (Numbers.Count<5) {
    int result=-1;
    Boolean IsNumber=Int32.TryParse(Console.ReadLine(),out result);
    if (IsNumber==false) {
      Console.WriteLine("Please enter a number!!!");
      continue;
    }

    if (Numbers.IndexOf(result)>=0) {
      Console.WriteLine("Hold on, you already entered that number. Try again.");
      continue;
    }
    Numbers.Add(result);
  }
var input=new HashSet();//只接受唯一的值
while(input.Count()<5)
{
Console.WriteLine(“输入值”);
int-temp;//在较新的C语言中,它可以移动到TryParse,例如“out int-temp”
if(Int32.TryParse(Console.ReadLine(),out temp))
{
if(输入包含(温度))
{
Console.WriteLine(“此号码已在收集中”);
}
其他的
{
输入。添加(临时);
}
}
其他的
{
Console.WriteLine(“不正确的值”);
}
}
//orderby(lambda_表达式)允许您通过“what things”指定
//你会想订购那批藏品的。在这种情况下,您只是排序
//按数字计算,但如果是复杂对象集合,那么
//能够按例如student=>student.Money进行排序;这意味着
//你是按学生的钱数来分类的。
foreach(input.OrderBy中的变量号(x=>x))
{
控制台写入线(编号);
}
var编号=新整数[5];
Console.WriteLine(“输入5个唯一数字”);
对于(int i=0;i<5;i++)
{
while(true)
{
var newValue=Convert.ToInt32(Console.ReadLine());
var currentNumber=Array.IndexOf(number,newValue);
如果(currentNumber==-1)
{
编号[i]=newValue;//接受新值
打破
}
WriteLine(“等等,你已经输入了那个号码。再试一次。”);
}
}
数组。排序(编号);
Console.WriteLine();
foreach(数值为n的变量)
控制台写入线(n);
Console.ReadLine();
index()返回数组中numberValue的索引,如果不存在,则返回-1;
  List<Int32> Numbers=new List<Int32>();
  Console.WriteLine("Enter 5 unique numbers");

  while (Numbers.Count<5) {
    int result=-1;
    Boolean IsNumber=Int32.TryParse(Console.ReadLine(),out result);
    if (IsNumber==false) {
      Console.WriteLine("Please enter a number!!!");
      continue;
    }

    if (Numbers.IndexOf(result)>=0) {
      Console.WriteLine("Hold on, you already entered that number. Try again.");
      continue;
    }
    Numbers.Add(result);
  }
Console.WriteLine(“输入5个唯一数字”); while(number.Count=0){ WriteLine(“等等,你已经输入了那个号码。再试一次。”); 继续; } 数字。添加(结果); }
其他人已经粘贴了他们的答案,但我的策略是这样的。它使用一个可为空的数组,并且
包含
,以避免每次用户键入一个数字时都在数组中迭代数字

static void Main(string[] args)
{
    var numbers = new int?[5];

    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine($"Please enter number {i+1}.");

        do
        {
            int n;
            while (!int.TryParse(Console.ReadLine(), out n))
                Console.WriteLine("Invalid number. Please try again.");

            var currentNumber = Convert.ToInt32(n);
            var containsNumber = numbers.Contains(currentNumber);

            if (!containsNumber)
            {
                numbers[i] = currentNumber;
                break;
            }

            Console.WriteLine("Number was entered previously, please enter a different number.");
        } while (true);


    }

    Console.Clear();
    Array.Sort(numbers);

    foreach (int? n in numbers)
        Console.WriteLine(n);

    Console.ReadLine();
}
static void Main(字符串[]args)
{
var编号=新整数?[5];
对于(int i=0;i<5;i++)
{
WriteLine($“请输入数字{i+1}”);
做
{
int n;
而(!int.TryParse(Console.ReadLine(),out n))
Console.WriteLine(“无效号码。请重试。”);
var currentNumber=转换为32(n);
var containsNumber=numbers.Contains(currentNumber);
如果(!containsNumber)
{
编号[i]=当前编号;
打破
}
Console.WriteLine(“先前已输入号码,请输入其他号码”);
}虽然(正确);
}
Console.Clear();
数组。排序(数字);
foreach(整数?n的数字)
控制台写入线(n);
Console.ReadLine();
}

你犯的小错误,兄弟。。 你的书面代码 如果(编号[i]==编号[0])不起作用 正确答案 If(number[i]==number[i])

publicstaticvoidmain(string[]args){
变量编号=新列表();
while(numbers.Count()<5)
{
var line=Console.ReadLine();
整数;
if(内部三巴色(行,输出编号)){
if(数字。包含(数字))
Console.WriteLine(“您已经输入”+行);
其他的
数字。添加(数字);
}否则
Console.WriteLine(第+“行不是数字”);
}
WriteLine(string.Join(“,”,numbers.OrderBy(i=>i));
}
使用系统;
使用System.Collections.Generic;
命名空间练习2
{
班级计划
{
静态void Main(字符串[]参数
        var number = new int[5];
        Console.WriteLine("Enter 5 unique numbers");

        for (int i = 0; i < 5; i++)
        {
            while (true)
            {
                var newValue = Convert.ToInt32(Console.ReadLine());
                var currentNumber = Array.IndexOf(number, newValue);
                if (currentNumber == -1)
                {
                    number[i] = newValue; // Accept New value
                    break;
                }
                Console.WriteLine("Hold on, you already entered that number. Try again.");
            }
        }

        Array.Sort(number);
        Console.WriteLine();

        foreach (var n in number)
            Console.WriteLine(n);

        Console.ReadLine();
  List<Int32> Numbers=new List<Int32>();
  Console.WriteLine("Enter 5 unique numbers");

  while (Numbers.Count<5) {
    int result=-1;
    Boolean IsNumber=Int32.TryParse(Console.ReadLine(),out result);
    if (IsNumber==false) {
      Console.WriteLine("Please enter a number!!!");
      continue;
    }

    if (Numbers.IndexOf(result)>=0) {
      Console.WriteLine("Hold on, you already entered that number. Try again.");
      continue;
    }
    Numbers.Add(result);
  }
static void Main(string[] args)
{
    var numbers = new int?[5];

    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine($"Please enter number {i+1}.");

        do
        {
            int n;
            while (!int.TryParse(Console.ReadLine(), out n))
                Console.WriteLine("Invalid number. Please try again.");

            var currentNumber = Convert.ToInt32(n);
            var containsNumber = numbers.Contains(currentNumber);

            if (!containsNumber)
            {
                numbers[i] = currentNumber;
                break;
            }

            Console.WriteLine("Number was entered previously, please enter a different number.");
        } while (true);


    }

    Console.Clear();
    Array.Sort(numbers);

    foreach (int? n in numbers)
        Console.WriteLine(n);

    Console.ReadLine();
}
  public static void Main (string[] args) {
    var numbers = new List<int>();
    while(numbers.Count() < 5)
    {
      var line = Console.ReadLine();
      int number;
      if (int.TryParse(line, out number)) {
        if (numbers.Contains(number))
          Console.WriteLine("You already entered " + line);
        else
          numbers.Add(number);
      } else
        Console.WriteLine(line + " is not a number");
    }
    Console.WriteLine(string.Join(", ", numbers.OrderBy(i => i)));
  }
using System;
using System.Collections.Generic;

namespace exercise2
{
    class Program
    {
        static void Main(string[] args)

     {
                //exercise 2 : question 3
                Console.WriteLine("Please write 5 numbers");
                var array = new int[5];
                const int loop_leng = 5;

                for(var i = 0; i < loop_leng; i++)
                {
                    var input = Console.ReadLine();
                    if(string.IsNullOrWhiteSpace(input))
                    {
                        Console.WriteLine("Re-try");
                        break;
                    }
                    int numbers = Convert.ToInt32(input);
                    foreach (var x in array)
                    {
                        if (numbers == x)
                        {
                        Console.WriteLine("don't repeat! re-try..");
                        break;
                        }
                    }
                    array[i] = numbers;

                    var a = Array.IndexOf(array, numbers);
                    var b = Array.LastIndexOf(array, numbers);
                    if(a != b)
                    { 
                    if(array[a] == array[i])
                    {
                        break;
                    }
                    }
                }
                { 
                Console.WriteLine();
                Array.Sort(array);
                foreach (var n in array)
                    Console.WriteLine(n);
                }

            }
        }
    }
}