编号为1,2,...,n的n个人按顺时针方向坐在圆桌边, 每人持有一密码(正整数),从第s人开始报数, 报到第m人出列, 再从下一人开始报, 直至所有的人都出列为止
下面是用数组的方法编的C语言源程序!仅供参考,欢迎多提宝贵意见!
#include <stdio.h> main() { int n,s,password; int a[100]; int i,j,counter1=1,counter2=0; printf("please input the value of n:"); scanf("%d",&n); printf("please input the number of the biginer:"); scanf("%d",&s); if(s>n) { printf("please reinput the number less than %d:",n); scanf("%d",&s); } printf("please input the value of the password:"); scanf("%d",&password);
for(i=0;i<n;i++) a[i]=i+1; j=s-1; while(counter2!=n) { while(password==1) { printf("%4d",a[j]); counter2++; if(counter2==n) return; if(j<n-1) j++; else j=0; } while(password!=1&&counter1!=password) { if(j<n-1) j++; else j=0; while(a[j]==0) { if(j<n-1) j++; else j=0; } counter1++; if(counter1==password) { printf("%4d",a[j]); a[j]=0; if(j<n-1) j++; else &nb
|