Мне нужно сгенерировать в цикле 200 чисел и знаков, которые создадут что-то вроде этого: 1 + 1 или 20 * 1252 Есть ли способ сделать это? Я новичок в C #. Может кто поможет?
Random randonNum = new Random();
for (int i = 0; i < 200; i++)
{
int nums = randonNum.Next(0, 500);
//dont know how to continue
}
3 ответа
Что-то вроде этого
string[] operands = new[] {"+", "-", "*", "/"};
Random random = new Random();
List<string> results = new List<string>();
for (int i = 0; i < 200; i++)
{
int firstNum = random.Next(0, 500);
int secondNum = random.Next(0, 500);
string operand = operands[random.Next(0, 3)];
results.Add(string.Format("{0}{1}{2}", firstNum, operand, secondNum));
}
Как насчет использования Random
для всех трех факторов? Random
можно использовать, например, для поиска оператора из списка или массива.
Вы можете использовать что-то вроде этого (где operators
- это массив объектов string
):
string[] operators = new string[] { "+", "-", "*" };
string oper = operators[randonNum.Next(operators.Length)];
Взгляните на этот рабочий пример:
// this list will contain the results
List<string> list = new List<string>();
// create an array of allowed operators
string[] operators = new string[] { "+", "-", "*" };
Random randonNum = new Random();
for (int i = 0; i < 200; i++)
{
// pick two numbers
int num1 = randonNum.Next(0, 500);
int num2 = randonNum.Next(0, 500);
// pick an operator from the array
string oper = operators[randonNum.Next(operators.Length)];
// add it to the list
list.Add(string.Format("{0}{1}{2}", num1, oper, num2));
}
Кажется, вы знаете, как сгенерировать случайное число, поэтому создание двух случайных чисел не должно вызывать никаких проблем. Похоже, у вас возникли проблемы с генерацией случайного «знака», называемого операторами.
Вы можете сделать это, создав массив, содержащий возможные варианты выбора, сгенерировав случайный индекс для этого массива и получив этот элемент через индексатор массива, как описано в Доступ к случайному элементу в списке:
var operators = new[] { "+", "-", "/", "*" };
int operatorIndex = randomNum.Next(operators.Length);
var selectedOperator = operators[operatorIndex];
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.