Мне интересно, как лучше всего подойти к этой проблеме. У меня есть функция рандомизации, которая принимает 8 строк в качестве входных данных и выводит случайный из них. Я хотел бы, чтобы этот рандомизатор игнорировал все строки, которые не имеют значения. Например, если у меня есть текст текста #, где # - 1-8, и, скажем, text5 и text7 не имеют текста, тогда я хочу, чтобы функция рандомизации проверяла, использует ли какой-либо текст только текст #, где # равно 1-8 но не 5 или 7.Как упростить обширный оператор C if?
-1
A
ответ
0
Yikes! Поместите строки в массив вместо 8 разных переменных. Затем используйте цикл for.
-1
Поместите строки в массив
Выберите случайный индекс в массиве, используя вашу случайную функцию
Используйте код, подобный:
int i; for (i = index; i != index; i = (i+1) % numitems) { /* check we have a string and it isn't empty */ if (strings[i] && *strings[i]) return strings[i]; } return NULL;
при условии, что index
- ваше случайное число от 0 до numitems
-1.
0
- Подсчитайте список допустимых строк.
- Форма случайного числа
(rand() % Count)
. - Найдите подходящую строку.
Пример кода
int StringCount = 8;
char *String[StringCount];
// populate `Sting` somehow
// count valid strings
int Count = 0;
for (int i=0; i<StringCount; i++) {
if (ValidString(String[i])) Count++;
}
if (Count == 0) Handle_NoGoodStrings();
int random_number = rand()%Count;
int i;
for (i=0; i<StringCount; i++) {
if (ValidString(String[i])) {
if (Count == random_number) {
break;
}
}
}
// String[i] is the string
Смежные вопросы
- 1. Упростить If statement C#
- 2. Как упростить оператор IF в Python 3
- 3. Не удается упростить `if` оператор условия
- 4. Упростить процесс длинной вложенной операции if C#
- 5. Как упростить метод, который не использует оператор if
- 6. Как упростить оператор if, проверяющий общие символы в строке?
- 7. Как упростить оператор IF, который возвращает true или false?
- 8. C++ Как перезапустить оператор if?
- 9. Упростить заявление «If»
- 10. Оператор C# false if
- 11. Можно ли упростить этот условный оператор IF в Verilog?
- 12. ищет способ упростить этот оператор if/else. Javascript
- 13. Есть ли лучший способ упростить этот оператор IF
- 14. Упростить if-else-statement
- 15. Упростить несколько операторов if
- 16. Оператор if внутри оператора if C#
- 17. Python: упростить многие операторы if
- 18. Попытка упростить мои операторы if
- 19. Расширенный оператор IF в C
- 20. Как упростить этот условный оператор PHP?
- 21. Как упростить этот оператор, используя indexOf?
- 22. Оператор C++ if в функции
- 23. If-оператор сокращения Condtion
- 24. Оператор if else ASP.NET C#
- 25. В C#, оператор `if` быстрее?
- 26. Оператор C# if для макроса
- 27. Как реализовать пользовательский оператор if на C#?
- 28. C#, Обширный расчет заработной платы с массивами
- 29. Как сократить оператор if-else-if в C#
- 30. Упростить if-statements в PHP
Берегись для случая, когда все 8 из них являются пустыми. –
Покажите нам код – ericbn
Вы пишете программное обеспечение для такого рода вещей. Что вы пробовали? –