Это не (в настоящее время) ясно в вопросе, но из пояснения в комментариях:
Вы хотите четыре переменные, каждая со случайным значением от 1 до 6 (включительно), но нет повторений?
Предположим, что вам на самом деле нужно 5 переменных, поскольку в вопросе указано:
не будет равно 4 другим переменным
тогда, так как вам нужно 5 уникальных переменных из 6 возможностей. Тогда самое простое решение - выбрать случайным образом только одну из возможностей, которую можно опустить. Кроме того, разумное средство хранения 5 значений одного и того же типа заключается в использовании одной переменной массива , а не пяти отдельных переменных - это делает код намного проще.
int num[5] ;
int omit = 1 + rand() % 6 ;
for( int i = 0, j = 0; i < sizeof(num) / sizeof(*num); i++, j++ )
{
if( i != omit ) num[j] = i ;
}
Обратите внимание, что выражение 1 + rand() % 6
будет иметь смещение для некоторых значений, даже если rand()
были полностью случайными. Упражнение для читателя, если это проблема.