用C#编写一个程序,让用户输入5个唯一的数字
编写一个程序,要求用户输入5个数字。如果有一个数字 如果以前已输入,则显示错误消息并要求用户 再试一次。用户成功输入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
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);
}
}
}
}
}