怎么说用户输入项存在于数组中? [更新]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么说用户输入项存在于数组中? [更新]相关的知识,希望对你有一定的参考价值。
我是c#的初学者,我被分配了以下问题:编写一个程序,收到8个正整数的数组,然后从用户那里收到一个数字,然后计算该数字在数组中的可能性。这应该继续,直到我们输入-1。例如,这是我的字符串:1,1,1,2,2,3,4,5然后我输入2,所以它应该返回./25这是输入和输出应该是这样的:
输入:
1,2,3,4,5,6,7,8
1
2
3(输入直到我们输入-1)
-1
输出:
./125
./125
./125
结束(-1)
到目前为止,这是我的代码:
Console.WriteLine(“输入8个int值”);
string line = Console.ReadLine();
string[] sps = line.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
int[] myint = new int[8];
myint = Array.ConvertAll(sps, int.Parse);
int b = Convert.ToInt32(Console.ReadLine());
int a;
int[] yep = new int[8];
do
{
Console.WriteLine("enter a number");
a = Convert.ToInt32(Console.ReadLine());
for (int j = 0; j < yep.Length; j++)
{
yep[j] = a;
}
} while (a != -1);
if (a == -1)
{
int count = 0;
for (int i = 0; i < myint.Length; i++)
{
for (int j = 0; j < yep.Length; j++)
{
Console.WriteLine(yep[j]);
if (yep[j] == myint[i])
{
Console.WriteLine((double)count / (double)myint.Length);
count++;
}
else
Console.WriteLine(Convert.ToInt32(0));
}
}
}
我收到了一串数字,将它转换成一个int数组,然后我收到了用户的整数,然后我做了输出的algotithm;首先我确定,直到我们输入-1;输入必须存储在一个数组中然后当a == - 1时我们将移动到如果检查条件是否存在第一个字符串中的输入(我们已经在开头转换为数组)。这种循环有些不对劲。他们没有给我正确的答案(输出是0 -1 0 -1不断),我也不知道如何声明“结束”部分。我知道这是一个非常基本的问题,但如果你帮忙,我会很高兴。
添加以下行:
int count = 0;
for(int i = 0; i < myint.Length; i++)
{
if (myint[i].Equals(b))
count++;
}
Console.WriteLine((double)count / (double)myint.Length);
输出:
enter 8 int values
1,1,1,2,2,3,4,5
enter a number
2
0.25
Press any key to continue . . .
试试这个:
Console.WriteLine("enter 8 int values");
string line = Console.ReadLine();
List<string> myList = new List<string>(line.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries));
string b = "";
Console.WriteLine("enter a number");
while ((b = Console.ReadLine()) != "-1")
{
decimal prob = (decimal)myList.Where(s => s == b).Count() / myList.Count();
Console.WriteLine("probability = " + prob + "
enter a number");
}
你必须在顶部添加using System.Collections.Generic;
。
考虑您要求用户输入用逗号分隔的数字字符串,并将其拆分为字符串数组(或int数组,如您所愿):
Console.WriteLine("Enter array of numbers:");
string line = Console.ReadLine();
string[] numbers = line.Trim().Split(',');
然后你要求用户输入他想要计算概率的所需数字:
Console.WriteLine("Enter your number: ");
string number = Console.ReadLine();
然后像这样计算概率:
double probability = (double)numbers.Count(num => num == number) / numbers.Length;
这应该完成任务。如果您有任何疑问,请评论。
我想有比这更好的方法,但它仍然必须工作
int[] List = new int[]{1,2,3,4,5,4,4,3};
int count = 0;
foreach(int d in List)
{
if(d == reqNo)
{
count++;
}
}
这里reqNo是你需要在数组中找到的数字
以上是关于怎么说用户输入项存在于数组中? [更新]的主要内容,如果未能解决你的问题,请参考以下文章
C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)