C#中随机替代正数和负数的数组

时间:2017-11-11 15:36:23

标签: c# arrays loops random

我想生成10个元素的数组,其中随机数介于(-10,10)之间。

情节是数组可以包含奇数位置(0,10)之间的正数 并且在(-10,0)之间包含偶数位置的负数

例如:1,-2,3,-4,7,-1,3,-3,2,-9

我甚至完全坚持在偶数位置生成-ve数,因为我是编程新手。

任何帮助都得到赞赏,Thanx提前

3 个答案:

答案 0 :(得分:4)

好的,我明白你的意思了。 试用此代码

Random rand = new Random();
        int[] arr = new int[10];
        for(int i = 0; i < 10; i++)
        {
            if(i % 2 == 0) 
                arr[i] = rand.Next(1,10);

            else 
                arr[i] = (rand.Next(1,10)) * -1;                   
        }
        for(int i = 0; i < 10; i++)
        {
            Console.WriteLine(arr[i]);
        }

示例输出 1 -9 9 -8 1 -4 2 -6 4 -9

答案 1 :(得分:1)

试试这个:

using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main (string[] args)
        {
            var random = new Random ();

            var array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                bool isOdd = (i % 2) == 1; // check remainder

                int randomNumber = random.Next (0, 11); // 0..10

                if (isOdd) randomNumber = -randomNumber; // change sign

                array[i] = randomNumber;
            }
        }
    }
}

答案 2 :(得分:0)

这比到目前为止所有已发布的答案都容易。这是一个基本的无限循环,您可以根据该循环来满足您的特定需求。

    public IEnumerable<int> RandomAlternatingSequence()
    {
        var random = new Random();
        int sign = -1;

        while (true)
        {
            sign *= -1;

            yield return sign * random.Next();
        }
    }

我意识到该职位已有2年历史了,但这可能会对其他人有所帮助。