exercise2.c

来自「北大青鸟软件工程师ppt的学生用书源代码」· C语言 代码 · 共 32 行

C
32
字号
#include <stdio.h>
#define MAX 50
void main()
{
	int i,k,m,n,num[MAX],*p;
	printf("请输入总人数:");
	scanf("%d",&n);
	p=num;//指向数组的指针
	for(i=0;i<n;i++)
		*(p+i)=i+1;//为数组中的元素赋值,即给这n个人编号为从1~n
	i=0;//控制指针偏移
	k=0;//报数计数器1~3
	m=0;//退出人数计数器
	while(m<n-1)
	{
		if(*(p+i)!=0)//开始报数,只要编号不等于零,则报数计数器+1
			k++;
		if(k==3)//报数到3时
		{
			*(p+i)=0;//将该人的编号置为0,表示该人退出
			k=0;//报数计数器置为0
			m++;//每退出一个人,退出人数计数器+1
		}
		i++;//指针移动到下一个元素
		if(i==n)//如果到了第n个人,则从第一个人开始
			i=0;
	}
	while(*p==0)//检索编号不为0的人,即最后留下来的人
		p++;
	printf("编号为 %d 的学员被当选为班长。\n",*p);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?