C语言有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报 数)凡报到3的人退出圈子麻烦注释下代码

如题所述

第1个回答  2022-11-16

#include<stdio.h>

#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位无符号整数

相似回答