/* 此为小程序多文件的写法,有 joseph.c joseph.h main.c makefile 四个文件 */
//<joseph.c>
#include <stdio.h>
#include <stdlib.h>
#include "joseph.h"
joseph *joseph_insert(int num)
{
joseph *l = NULL;
joseph *p = NULL;
joseph *new = NULL;
int i = 1;
l = malloc(sizeof(joseph));
l->id = i;
p = l;
sprintf(l->id, "%d", i);
for(i = 1; i <=10 ; i++)
{
new = malloc(sizeof(LLIST));
new->id = i;
sprintf(new->id, "%d", i);
new->next = l;
p->next = new;
p = new;
}
return l;
}
void joseph_display(joseph *l)
{
joseph *p;
for(p = l; p != l; p = p->next)
printf("%d\n", p->id);
}
int joseph_play(joseph *p, int i , int j)
{
joseph *p = l;
LLIST *p = NULL;
// p = _find(*l, find_data);
for(i = 1; i < 4; i++)
{
while(i == 3)
{
}
}
for(p = l; p != l; p = p->next)
{
if(p->id == );
return p;
}
if(p == NULL)
return -1;
if(p == *l)
{
*l = (*l)->next;
free(p);
}
else
{
while(back->next != p)
back = back->next;
back->next = p->next;
free(p);
}
printf("Bingo! l->id = %d\n",i);
return 0;
}
//----------------------------------------------------------------------------------------------------------
//<joseph.h>
#ifndef __JOSEPH_H
#define __JOSEPH_H
typedef struct llist
{
int id;
struct llist *next;
}joseph;
joseph *joseph_insert(int);
void joseph_display(joseph *);
int joseph_play(joseph *, int , int);
#endif
//----------------------------------------------------------------------------------------------------------
//<main.c>
#include <stdio.h>
#include "joseph.h"
int main(void)
{
joseph *l = NULL;
int peo_num = 0;
int kill_num = 0;
int alive = 0;
printf("Please Insert People Number : ");
scanf("%d", &peo_num);
l = joseph_insert(peo_num);//插入
printf("=======================================\n");
joseph_display(l);//遍历
printf("=======================================\n");
printf("Please Insert Kill Number : ");
scanf("%d", &kill_num);
alive = joseph_play(l, peo_num, kill_num);//玩游戏
printf("=======================================\n");
printf("Alive : %d\n", alive);
return 0;
}
//----------------------------------------------------------------------------------------------------------
//<makefile>
main : main.o joseph.o
gcc -o $@ $^
clean :
rm -rf *.o main
约瑟夫环c语言代码
原文作者:约瑟夫环问题
原文地址: https://blog.csdn.net/weixin_42864391/article/details/82011074
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/weixin_42864391/article/details/82011074
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。