小明上课的教室里一共有两个班,其中一班有30名同学,二班有33名同学。编写一个点名程序,实现:每次按学号分别在两个班点名N位不同的同学,且两个班不重复。例如,分别在一班和二班点名6位同学,输出如下。 上述题目的代码已给出,将程序在eclipse中编写并运行
时间: 2023-04-02 19:02:40 浏览: 269
自己写的班级点名程序
很高兴回答你的问题。以下是点名程序的代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n = 6; // 每次点名的人数
int a[30], b[33]; // 两个班的学生编号
int i, j, k;
// 初始化学生编号
for (i = ; i < 30; i++)
a[i] = i + 1;
for (i = ; i < 33; i++)
b[i] = i + 1;
// 随机点名
srand((unsigned)time(NULL)); // 用系统时间初始化随机数种子
printf("一班点名结果:");
for (i = ; i < n; i++)
{
j = rand() % (30 - i); // 从剩余的学生中随机选择一个
printf("%d ", a[j]); // 输出学生编号
for (k = j; k < 29 - i; k++)
a[k] = a[k + 1]; // 将已经点名的学生从数组中删除
}
printf("\n");
printf("二班点名结果:");
for (i = ; i < n; i++)
{
j = rand() % (33 - i); // 从剩余的学生中随机选择一个
printf("%d ", b[j]); // 输出学生编号
for (k = j; k < 32 - i; k++)
b[k] = b[k + 1]; // 将已经点名的学生从数组中删除
}
printf("\n");
return ;
}
请将以上代码复制到eclipse中,然后编译并运行即可。希望我的回答能够帮到你!
阅读全文