scanf("%d", &numParticipants);
printf("请输入中奖人数:");
scanf("%d", &numWinners);
if (numWinners > numPar"> scanf("%d", &numParticipants);
printf("请输入中奖人数:");
scanf("%d", &numWinners);
if (numWinners > numPar">
117.info
人生若只如初见

C语言实现随机抽奖程序

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

#include 
#include 
#include 
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函数释放内存空间。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe7c6AzsLBgJfAl0.html

推荐文章

  • C语言获取数组长度的几种方法

    C语言获取数组长度的几种方法有: 使用sizeof运算符:可以使用sizeof运算符来获取数组的长度。例如,对于一个整型数组arr,可以使用sizeof(arr) / sizeof(arr[0]...

  • c语言运行后窗口不显示输出怎么解决

    如果你正在使用Windows操作系统,且使用的是命令行窗口来运行C语言程序,但是窗口运行后没有显示输出,可能有以下几个原因和解决方法: 程序没有正确输出内容:检...

  • c语言怎么获取鼠标当前位置

    在C语言中,要获取鼠标的当前位置,需要使用操作系统提供的相关函数。
    在Windows操作系统中,可以使用GetCursorPos函数获取鼠标的当前坐标。该函数的原型为...

  • c语言运行窗口闪退怎么解决

    出现C语言运行窗口闪退的情况,可能是由于代码中存在错误或者运行环境配置不正确所致。以下是一些可能的解决方法: 检查代码错误:确保代码没有语法错误或逻辑错...

  • 用Python监控NASA TV直播画面的实现步骤

    实现监控NASA TV直播画面的步骤如下: 安装所需的库:安装Python的requests库和opencv库。 使用requests库从NASA TV的直播地址获取直播流数据。可以使用以下代码...

  • 基于Android10渲染Surface的创建过程

    Android 10中渲染Surface的创建过程如下: 创建SurfaceView或TextureView对象:在布局文件或代码中创建一个SurfaceView或TextureView对象,用于显示渲染的内容。...

  • jQuery的remove()方法使用详解

    jQuery的remove()方法用于从DOM中删除匹配的元素及其所有子元素。以下是remove()方法的详细使用说明:1、语法$(selector).remove()2、参数selector:要删除的元素...

  • Android自定义实现淘宝下拉刷新效果

    要实现淘宝下拉刷新效果,可以使用RecyclerView和SwipeRefreshLayout来实现,具体步骤如下: 在布局文件中添加SwipeRefreshLayout和RecyclerView组件。 在代码中...