用c语言,制作一“x选y ”通用福利彩券摇奖器,即:每次运行,随机产生y个1~x的不重复的整数。 要求交互良好,使用方便。
时间: 2024-03-26 14:39:08 浏览: 84
好的,这是一个简单的C语言程序,用于生成“x选y”彩票的随机数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x, y, i, j;
int randNums[100] = {0}; // 数组用于存储随机数
srand(time(NULL)); // 设置随机数种子
printf("请输入 x 和 y:");
scanf("%d %d", &x, &y);
if (x < y) {
printf("错误:x 的值必须大于等于 y 的值。\n");
return 1;
}
// 生成随机数
for (i = 0; i < y; i++) {
int randNum = rand() % x + 1; // 生成1~x之间的随机数
// 检查是否已经生成过该随机数
for (j = 0; j < i; j++) {
if (randNum == randNums[j]) {
i--; // 如果已经生成过,重新生成
break;
}
}
if (j == i) {
randNums[i] = randNum;
}
}
// 输出随机数
printf("本次彩票的随机数是:");
for (i = 0; i < y; i++) {
printf("%d ", randNums[i]);
}
printf("\n");
return 0;
}
```
该程序首先要求用户输入x和y,然后生成y个1~x之间的不重复的随机数,并输出到屏幕上。如果用户输入的x小于y,则程序会输出一个错误信息并退出。
为了确保生成的随机数是不重复的,程序使用了一个数组来存储已经生成的随机数,并在生成每个随机数时进行检查。如果已经生成过该随机数,则重新生成。
阅读全文