Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何说用户输入项存在于数组中?[更新]_C#_Arrays_String_While Loop_Do While - Fatal编程技术网

C# 如何说用户输入项存在于数组中?[更新]

C# 如何说用户输入项存在于数组中?[更新],c#,arrays,string,while-loop,do-while,C#,Arrays,String,While Loop,Do While,我是c#的初学者,我被分配了以下问题:编写一个程序,接收8个正整数的数组,然后从用户那里接收一个数字,然后计算该数字出现在数组中的概率。这应该一直持续到我们输入-1。 例如,这是我的字符串:1,1,1,2,2,3,4,5,然后我输入2,所以它应该返回。/25 这就是输入和输出的样子: 输入: 1,2,3,4,5,6,7,8 一, 二, 3(输入直到我们输入-1) -一, 输出: /125 /125 /125 完(适用于-1) 到目前为止,这是我的代码: Console.WriteLine(“输入

我是c#的初学者,我被分配了以下问题:编写一个程序,接收8个正整数的数组,然后从用户那里接收一个数字,然后计算该数字出现在数组中的概率。这应该一直持续到我们输入-1。 例如,这是我的字符串:1,1,1,2,2,3,4,5,然后我输入2,所以它应该返回。/25 这就是输入和输出的样子:

输入:

1,2,3,4,5,6,7,8

一,

二,

3(输入直到我们输入-1)

-一,

输出:

/125

/125

/125

完(适用于-1)

到目前为止,这是我的代码:

Console.WriteLine(“输入8个整数值”)

string line=Console.ReadLine();
string[]sps=line.Split(新字符[]{'',','},StringSplitOptions.RemoveEmptyEntries);
int[]myint=新的int[8];
myint=Array.ConvertAll(sps,int.Parse);
intb=Convert.ToInt32(Console.ReadLine());
INTA;
int[]是=新的int[8];
做
{
Console.WriteLine(“输入一个数字”);
a=Convert.ToInt32(Console.ReadLine());
对于(int j=0;j
我已经收到了数字字符串,将其转换成一个int数组,然后我从用户那里收到了整数,然后我为输出做了算法;首先我决定,直到我们进入-1;输入必须存储在一个数组中,然后当a==-1时,我们将移动到检查第一个字符串中输入是否存在的条件(我们在开始时已将其转换为数组)的位置。现在,此循环有问题。他们没有给我正确的答案(输出总是0-10-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);

我想有比这更好的方法,但它仍然必须有效`


此处reqNo是您需要在数组中查找的数字

考虑要求用户输入一个以逗号分隔的数字字符串,并将其拆分为字符串数组(或int数组,如您所愿):

然后,您要求用户输入他想要计算概率的所需数字:

Console.WriteLine("Enter your number: ");
string number = Console.ReadLine();
然后像这样计算概率:

double probability = (double)numbers.Count(num => num == number) / numbers.Length;
这是一个

这应该可以完成任务。如果您有任何问题,请发表评论。

试试以下方法:

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 + "\nenter a number");

}
Console.WriteLine(“输入8个int值”);
string line=Console.ReadLine();
List myList=new List(line.Split(new char[]{',','},StringSplitOptions.removemptyEntries));
字符串b=“”;
Console.WriteLine(“输入一个数字”);
而((b=Console.ReadLine())!=“-1”)
{
decimal prob=(decimal)myList.Where(s=>s==b.Count()/myList.Count();
Console.WriteLine(“probability=“+prob+”\n输入一个数字”);
}

您必须使用System.Collections.Generic添加
在顶部。

使用LINQ:var instanceCount=myint.Count(x=>x==b);这显然是家庭作业,所以LINQ答案可能不是学生使用的最佳答案,因为那样他就学不到那么多。
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;
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 + "\nenter a number");

}