这不要元旦了嘛,特地给大家带来个福利,这次福利便是这个抽签代码。老规矩我们还是先来讲一讲这串代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void DrawLots(int arr[],int sz)
{
if (sz == 0)
{
printf("所有学生均背诵\n");
return;
}
int x = rand() % sz;
int n = arr[x];
printf("请第%d号同学背诵\n", n);
arr[x] = arr[sz - 1];
}
void menu()
{
printf("*********************************\n");
printf("*********** 1.start *************\n");
printf("********** 0.escape *************\n");
printf("*********************************\n");
}
int main()
{
int input = 0;
int person = 0;
printf("请输入人数>:\n");//首先要固定人数
scanf("%d", &person);
int arr[100] = { 0 };
for (int a = 0; a<= person; a++)//用循环输入元素
{
arr[a] = a + 1;
}
int sz = person;
srand((unsigned int)time(NULL));
do {
menu();
printf("请选择>;\n");
scanf("%d", &input);
switch (input)
{
case 1:
DrawLots(arr, sz);
if (sz > 0)
sz--;
break;
case 0:
printf("escape\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
} while (input);
return 0;
}
最后还是老规矩,进入咱们的知识点剖析环节
代码要点:先确定人数,循环保存数组元素。注意:此次的人数不再是常量,因此数组arr[ ](中括号)内的无法确定,但我们可以确定的是最大的元素容量并且初始化,再用循环往数组里保存元素
此代码总体上涉及的知识点与猜数字游戏大体上相同,数组是唯一在上次的猜数字代码未出现的,如果有童鞋还是不太理解数组概念记得回去复习一下数组哦
如果看懂了就快去尝试一下吧,如果还有疑问请在下方评论区留言