ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1052669
Tpoeшник (15.11.2020 22:23 - 16.11.2020 00:01, просмотров: 9032) MBedder
Нужно случайным образом разбить на пары людей. Например для игры в теннис 2на2 во время обеденного перерыва. Половые и другие признаки не учитываются, кол.во людей может быть n человек. Язык Си. Честно ли будет получаться? 
#include <stdio.h>
#include <stdlib.h>

char *employees[] = {"Ксения", "Саша", "Маша", "Генерал", "Валерий", "Д.Трамп"};

int frand (char j) {
 return rand()/(RAND_MAX/j);
}

int main(void) {
    char y;
    int n = sizeof(employees)/sizeof(&employees);
    for( char i=0; i < n; i++ ) {
     if ( !(i % 4) ) 
       printf("\n");
     else if ( !(i % 2) ) 
       printf("vs ");
     y = frand(n-i);
     printf("%s ", employees[y+i]);
     employees[y+i] = employees[i];
   }
return 0;
}