#include
#define N 5//人数
void main()
{
int a[N]={0},i=0,out_n=0,call_n=0,*p;
p=a;
while(1){//循环报数
if(*p==0){//如果健在
if(out_n==(N-1))break;//如果仅剩一人
call_n++;//报数
call_n%=3;//最大为3,到了3就从0开始
if(call_n==0){*p=1;out_n++;}//为0(即3)出局
}
p++;if(p==a+N)p=a;//循环转向下一人
}
printf(“最后剩余者的编号是:%d\n”,p+1-a);
}
扩展资料:
printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。
函数的原型为:int printf(const char*format,。。。);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。
printf()函数的调用格式为:
printf(“<;格式化字符串>”,<参量表>);
其中格式化字符串包括两部分内容:一部分是正常字符;这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一对应,否则将会出现意想不到的错误。
规定符
%d十进制有符号整数
%u十进制无符号整数
%f浮点数
%s字符串
%c单个字符
%p指针的值
%e指数形式的浮点数
%x,%X无符号以十六进制表示的整数
%o无符号以八进制表示的整数
%g把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
#include
void main()
{
int i,k,m,n,num[50],*p;
printf(“请输入人数n=”);
scanf(“%d”,&n);
p=num;
for(i=0;i*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m{
if(*(p+i)!=0)
k++;
if(k==5)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)
i=0;
}
while(*p==0)
p++;
printf(“最后留下的是原来编号为%d的那个人\n”,*p);
}
没时间测了,思路是这样
#include “stdio。h”
int main()
{
int i,index = 0,num,number[100];//number[100]存那100个人 为0 表示未被淘汰 为一被淘汰
while (1)
{
for (i = 0;i<100;i++)////淘汰人
{
printf(“please speak out your num”);
if (number[i] == 0)
{
scanf(“%d”,&num);
if (num%2 == 1)
{
printf(“you are out”);
number[i] = 1;
}
}
}
for (i = 0;i< = 100;i++)//选出最后一个人
{
if (number[i] == 0)
{
index++;
}
if(index == 1)
printf(“you have win %d”,i);
break;
}
}
return 0;
}
- 上一篇:《题秋江独钓图》这首诗的意思是什麽?
- 下一篇:一个人要进步为什么那么难?