c语言

C语言实现随机抽奖程序

小云
212
2023-08-17 15:18:57
栏目: 编程语言

以下是一个C语言实现的随机抽奖程序示例:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int numParticipants, numWinners;
printf("请输入参与抽奖的人数:");
scanf("%d", &numParticipants);
printf("请输入中奖人数:");
scanf("%d", &numWinners);
if (numWinners > numParticipants) {
printf("中奖人数不能大于参与人数!\n");
return 0;
}
// 使用当前时间作为随机数种子
srand(time(NULL));
int* participants = (int*)malloc(numParticipants * sizeof(int));
int* winners = (int*)malloc(numWinners * sizeof(int));
// 初始化参与者编号
for (int i = 0; i < numParticipants; i++) {
participants[i] = i + 1;
}
// 随机抽奖
for (int i = 0; i < numWinners; i++) {
int randIndex = rand() % numParticipants;
winners[i] = participants[randIndex];
// 将已中奖的参与者从数组中删除
for (int j = randIndex; j < numParticipants - 1; j++) {
participants[j] = participants[j + 1];
}
numParticipants--;
}
printf("中奖者编号:");
for (int i = 0; i < numWinners; i++) {
printf("%d ", winners[i]);
}
printf("\n");
free(participants);
free(winners);
return 0;
}

该程序会先询问参与抽奖的人数和中奖人数,然后使用随机数生成器生成中奖者编号,最后输出中奖者的编号。请注意,该程序使用了动态内存分配,因此在使用完之后需要调用free函数释放内存空间。

0
看了该问题的人还看了