Генерация случайных чисел в C
Привет,у меня есть два меню [menu1, menu2] Я хочу выбрать разные имена для этих двух меню в соответствии с генерируемым случайным числом(либо 1, либо 2), поэтому я использовал menu1[r1].c1[r1] и menu2[r2].c2[r2], чтобы проверить, равно ли оно нулю, в этом случае я выбираю форму имени menu1[r1].n1[r1] и menu2[r2].n2[r2].
Так что если все элемент menu1[Р1].С1[Р1] =1 ,то программа должна генерировать различные случайные числа, выход должен быть mee1,mee2,me16,mee4,mee5,me13,mee7,mee8,mee9,почтовый индекс me10,me11,ме12,mee6,me14,me15,mee3
или по-разному расположить в соответствии со случайным числом, которое генерирует
Что я уже пробовал:
---
phil.o
Я действительно пытаюсь, но мне все еще очень трудно понять ваше требование. Что меня больше всего беспокоит, так это ваше использование массивов, поскольку я чувствую, что вы переоцениваете свое решение.
Пожалуйста, дайте мне немного времени, я постараюсь опубликовать второе решение, пытаясь немного упростить ситуацию.
Lilyanaa
спасибо за ваши усилия, на самом деле я не знаю, почему условия if не работают, я просто хочу, чтобы вывод состоял из 16 имен, по восемь из каждого меню и без дубликатов в именах
phil.o
Хорошо, я вижу; на самом деле вам не нужно, чтобы переменные-члены в ваших структурах были массивами (за исключением имен, которые являются массивами символов, bt я покажу вам, как их объявлять). И вы используете переменную-член c, чтобы узнать, было ли заданное имя уже атрибутировано, не так ли?
Проблема в том, что из 16 случайных чисел 1 или 2 ничто не гарантирует, что вы получите 8 единиц и 8 двоек; у вас может быть 10 единиц и 6 двоек или 5 единиц и 11 двоек.
phil.o
Так что позвольте мне перефразировать, чтобы быть уверенным, что я понял:
вы хотите, чтобы в вашем конечном результате был получен массив из 16 f структур, каждая из которых имеет случайное распределение имен "mee1", "mee2",..., "me16", причем каждое имя является уникальным и исходит из массива menu1 или menu2 в зависимости от случайного числа?
Lilyanaa
Да, поэтому я использую if(count1<=8), чтобы гарантировать, что не выберет больше 8, Если новое случайное число тоже будет 1, оно должно генерировать новое случайное число и в то же время .c1 будет all = 1, потому что все 8 имен были выбраны
phil.o
Я понимаю, но ты не можешь так поступить. Я готовлю второй ответ, который представит вам альтернативу.
Lilyanaa
большое вам спасибо, я жду