有没有办法在列表中进行随机数,我可以决定应该有多少个数字C#

发布于 2025-01-30 01:51:24 字数 776 浏览 4 评论 0原文

我正在尝试获取带有随机数字的列表,

当我启动应用程序时,我要决定要插入哪个数字,但插入件什么都不做,我知道缺少编码数字的东西生成器,但我只是找不到它是什么。

因此,基本上我希望它显示此信息,如果我键入5个

随机数

随机数随机数

随机数

随机数

随机数

,那么如果我键入3,我希望它向我展示其中有多少个。

现在我制作了此代码:

Console.Write("insert number to decide: ");
int numbers = Convert.ToInt32(Console.ReadLine());
Console.Write("Number to count: ");
int yoy = Convert.ToInt32(Console.ReadLine());

Random random = new Random();

numbers = random.Next(0, 10);


var number = numbers;

var count = 0;
var digit = yoy;

var n = number;
while (n > 0)
{
    if (n % 10 == digit)
        count++;
    n = n / 10;
}

Console.WriteLine($"Number: {number}");
Console.WriteLine(
    $"Digit {digit} appears {count} times.");

Console.ReadKey();

I'm trying to get a list with random numbers with my decision

when I start the application I get to decide which number I want it to insert/count but insert doesn't do anything, I know that am missing something coding with the number generator but I just can't find out what it is.

So basically i want it to show this if i typed 5

Random Number

Random Number

Random Number

Random Number

Random Number

then if i typed 3 i want it to show me how many three's are there.

for now I made this code:

Console.Write("insert number to decide: ");
int numbers = Convert.ToInt32(Console.ReadLine());
Console.Write("Number to count: ");
int yoy = Convert.ToInt32(Console.ReadLine());

Random random = new Random();

numbers = random.Next(0, 10);


var number = numbers;

var count = 0;
var digit = yoy;

var n = number;
while (n > 0)
{
    if (n % 10 == digit)
        count++;
    n = n / 10;
}

Console.WriteLine(
quot;Number: {number}");
Console.WriteLine(
    
quot;Digit {digit} appears {count} times.");

Console.ReadKey();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

厌味 2025-02-06 01:51:24

让我尝试解释您的代码

Console.Write("insert number to decide: ");
int numbers = Convert.ToInt32(Console.ReadLine());
Console.Write("Number to count: ");
int yoy = Convert.ToInt32(Console.ReadLine());

Random random = new Random();

numbers = random.Next(0, 10); // You are overwriting user input here from line 2.


var number = numbers; // Redundant duplicate variable.

var count = 0;
var digit = yoy;

var n = number;
while (n > 0)
{
    if (n % 10 == digit)
        count++;
    n = n / 10;
}

Console.WriteLine($"Number: {number}");
Console.WriteLine(
    $"Digit {digit} appears {count} times.");

Console.ReadKey();

您要实现什么?
如果要计算一个数字在0和用户输入之间的随机数中的出现,则我将在第6行中写下此:

numbers = random.Next(0, numbers + 1);

如果不包括用户输入,请删除'+ 1'。

更新:

对于您的更新说明,我将写:

Console.Write("insert number to decide: ");
string userNumber = Console.ReadLine();
Console.Write("Number to count: ");
string userYoy = Console.ReadLine();

int number = 0;
int yoy = 0;
int count = 0;

bool numbersSuccess = int.TryParse(userNumber, out number);
bool yoySuccess = int.TryParse(userYoy, out yoy);

if(numberSuccess && yoySuccess)
{
    Random random = new Random();
    List<int> numbers = new List<int>();
   
    for(int i = 0; 0 < number; i++)
    {
        int randomNumber = random.Next(0,10);
        if(randomNumber == yoy)
        {
            count++;
        }
        Console.WriteLine($"Number: {randomNumber}");

    }
    Console.WriteLine(
    $"Digit {yoy} appears {count} times.");
}
else
{
    Console.WriteLine("Something went wrong, only type hole numbers!");
}
Console.ReadKey();

n DIGIT长度随机数的更新#2

,您可以写下类似的内容:

Console.Write("insert number to decide: ");
string userNumber = Console.ReadLine();
Console.Write("Number to count: ");
string userYoy = Console.ReadLine();

int numberOfDigits = 0;
int yoy = 0;
int count = 0;

bool numbersSuccess = int.TryParse(userNumber, out numberOfDigits );
bool yoySuccess = int.TryParse(userYoy, out yoy);

if(numberSuccess && yoySuccess)
{
    int randomMax = (int)Math.Pow(10,numberOfDigits);

    Random random = new Random();
    int number = random.Next(0,randomMax);

    var n = number;
    while (n > 0)
    {
        if (n % 10 == digit)
            count++;
        n = n / 10;
    }

    Console.WriteLine($"Number: {number}");
    Console.WriteLine($"Digit {digit} appears {count} times.");
}
else
{
    Console.WriteLine("Something went wrong, only type hole numbers!");
}
Console.ReadKey();

Let me try to explain your code

Console.Write("insert number to decide: ");
int numbers = Convert.ToInt32(Console.ReadLine());
Console.Write("Number to count: ");
int yoy = Convert.ToInt32(Console.ReadLine());

Random random = new Random();

numbers = random.Next(0, 10); // You are overwriting user input here from line 2.


var number = numbers; // Redundant duplicate variable.

var count = 0;
var digit = yoy;

var n = number;
while (n > 0)
{
    if (n % 10 == digit)
        count++;
    n = n / 10;
}

Console.WriteLine(
quot;Number: {number}");
Console.WriteLine(
    
quot;Digit {digit} appears {count} times.");

Console.ReadKey();

What are you trying to achieve?
If you want to count the occurrence of a digit in a random number between 0 and the users input, then I would write this on line 6:

numbers = random.Next(0, numbers + 1);

Remove '+ 1' if users input should not be included.

UPDATE:

for your updated explanation i would write:

Console.Write("insert number to decide: ");
string userNumber = Console.ReadLine();
Console.Write("Number to count: ");
string userYoy = Console.ReadLine();

int number = 0;
int yoy = 0;
int count = 0;

bool numbersSuccess = int.TryParse(userNumber, out number);
bool yoySuccess = int.TryParse(userYoy, out yoy);

if(numberSuccess && yoySuccess)
{
    Random random = new Random();
    List<int> numbers = new List<int>();
   
    for(int i = 0; 0 < number; i++)
    {
        int randomNumber = random.Next(0,10);
        if(randomNumber == yoy)
        {
            count++;
        }
        Console.WriteLine(
quot;Number: {randomNumber}");

    }
    Console.WriteLine(
    
quot;Digit {yoy} appears {count} times.");
}
else
{
    Console.WriteLine("Something went wrong, only type hole numbers!");
}
Console.ReadKey();

UPDATE #2

For an N digit long random number, you could write something like this:

Console.Write("insert number to decide: ");
string userNumber = Console.ReadLine();
Console.Write("Number to count: ");
string userYoy = Console.ReadLine();

int numberOfDigits = 0;
int yoy = 0;
int count = 0;

bool numbersSuccess = int.TryParse(userNumber, out numberOfDigits );
bool yoySuccess = int.TryParse(userYoy, out yoy);

if(numberSuccess && yoySuccess)
{
    int randomMax = (int)Math.Pow(10,numberOfDigits);

    Random random = new Random();
    int number = random.Next(0,randomMax);

    var n = number;
    while (n > 0)
    {
        if (n % 10 == digit)
            count++;
        n = n / 10;
    }

    Console.WriteLine(
quot;Number: {number}");
    Console.WriteLine(
quot;Digit {digit} appears {count} times.");
}
else
{
    Console.WriteLine("Something went wrong, only type hole numbers!");
}
Console.ReadKey();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文