随机点名
作者:
cassie
,
2021-11-30 12:14:39
,
所有人可见
,
阅读 383
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include<windows.h>
using namespace std;
int Random(int start, int end) {
int dis = end - start;
return rand() % dis + start;
}
int main() {
int a[1000];
int i = 0, l = 0, m = 0;
int lim;
srand((unsigned)time(NULL));
cout << "请告诉我学生学号后两位的取值的最小值是多少?\n" << endl;
cin >> l;
cout << "那么最大值呢?\n";
cin >> m;
cout << "请问要选择多少位同学呢?\n" << endl;
cin >> lim;
cout << "正在为您选择,请稍后片刻";
Sleep(2000);
for (i = 1; i <= lim; i++) {
a[i] = Random(l, m);
}
for (i = 1; i <= lim; i++) {
cout << "恭喜学号末尾为" << a[i] << "的同学!准备接受制裁!\n " << endl;
}
printf("\n");
return 0;
}
你这个只能选择一位同学的,单抽出奇迹
博主可以讲一下这一步是什么意思吗?return rand() % dis + start;我不是很理解,万分感谢
rand() 返回0~RAND_MAX中的随机数,%dis保证 rand()%dis得到的数是>=0 , <dis(也就是人数)的数,加上最开始人的编号(所有人编号都是连着的),就是随机抽到的人的编号
举个例子比如从编号12到22十个人中抽一人,人数dis就是22 - 12 = 10人,如果rand()返回的值是36,36 % 10 = 6,就是要第六个人,加上最开始的编号6 + 12 = 18,所以最后抽到的人编号为18
回到了中学时代hh,以前英语课也是经常拿这种东西来抽背诵QwQ,现在想来自己也可以写出来了hh
hhh