#include <stdio.h> #include <stdlib.h> typedef struct node { int num,code; struct node *next; }lnode; int main(void) { printf("我的设计:约瑟夫生死实验"); printf("/n/n------------------------------------WELCOME-------------------------------------"); printf("/n"); printf("船上共30人,分别编号:1~30/n"); printf("每次投下第九个人,直到船上留下15人为止。/n"); printf("以下是投下人的编号:/n"); int i,j,key=9,n=30; lnode *p,*s,*head; head=(lnode *)malloc(sizeof(lnode)); p=head; for(i=1;i<=n;i++) { s=p; p=(lnode *)malloc(sizeof(lnode)); s->next=p; p->num=i; p->code=i; } p->next=head->next; p=head; head=head->next; free(p); p=head; do { j=1; p=head; while(j<key) { s=p; p=p->next; j++; } i=p->num; key=p->code; printf("/n投下船人的编号:"); printf("%d",i); s->next=p->next; head=p->next; free(p); n--; }while(n>15); printf("/n/n"); system("pause"); return 0; }