第1个回答 2014-11-06
#include "stdafx.h"
#define N 5
#define M 8
struct Prisoner
{
char name;
int id;
};
int main(int argc, char* argv[])
{
Prisoner prisoners[N];
for(int i=0;i<N;i++)
{
prisoners[i].id=i;
prisoners[i].name='A'+i;
printf("id=%d, name=%c\n",prisoners[i].id,prisoners[i].name);
}
printf("***************\n");
static int index=0;
static int left=N;
while(1)
{
for(int i=0;i<N;i++)
{
if (prisoners[i].name!='0') {
index++;
if (index%M==0){
printf("id=%d, name=%c\n",prisoners[i].id,prisoners[i].name);
prisoners[i].name ='0';
left -=1;
}
}
}
if(left==0)
{
break;
}
}
printf("Done!\n");
return 0;
}