编写一个函数接受这些参数:内含int类型元素的数组名,数组的大小和一个代表选取次数的值。该函数从数组中随机指定数量的元素,并打印他们。 每个元素只能选择一次(模拟抽奖数字或挑选陪审团成员)。另外,如果你的实现有time()或类似的函数,可以在srand()中使用这个函数的输出来初始 化随机数生成器rand()。编写一个简单程序测试该函数

/编写一个函数接受这些参数:内含int类型元素的数组名,数组的大小和一个代表选取次数的值。该函数从数组中随机指定数量的元素,并打印他们。
每个元素只能选择一次(模拟抽奖数字或挑选陪审团成员)。另外,如果你的实现有time()或类似的函数,可以在srand()中使用这个函数的输出来初始
化随机数生成器rand()。编写一个简单程序测试该函数
/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void selectRandomElements(int arr[], int size, int numSelections) {
    srand(time(NULL));
    for (int i = size - 1; i >= size - numSelections; i--) {
        int j = rand() % (i + 1);
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    printf("Selected elements: ");
    for (int i = size - 1; i >= size - numSelections; i--) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int size = sizeof(arr) / sizeof(arr[0]);
    int numSelections = 3;
    selectRandomElements(arr, size, numSelections);
    return 0;
}

posted on 2024-08-08 23:26  wessf  阅读(4)  评论(0编辑  收藏  举报