uj5u.com熱心網友回復:
對頭。有挑戰性的,應該分出loser和winner。。這樣才有意義。。。
uj5u.com熱心網友回復:
這不是約瑟夫環嗎?90%是一樣的,不一樣的地方是這個數數的值是變化的。先寫出一個約瑟夫環的代碼,再考慮把這個數數的值變化加進去就好了。
uj5u.com熱心網友回復:
#include<stdio.h>#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}node;
typedef struct Node *LinkList;
/*===============================================================
CreateLinkList函式功能:
創建鏈表L, 并將給定陣列a, 以及陣列中元素個數n,尾部插入法建立回圈鏈表
===================================================================*/
LinkList createlist(LinkList *L,int n,int a[])
{
LinkList p,r;
int i;
(*L)=(LinkList)malloc(sizeof(node)); // 建立頭結點
r=*L;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(node)); // 生成新結點
p->data=https://bbs.csdn.net/topics/a[i];
r->next=p;
r=p;
}
r->next=(*L)->next;
free(*L);
return r->next;
}
int main()
{
int A[]={0};
int i,j,N,m;
LinkList pi,p,temp;
printf("請輸入鏈表元素的個數:");
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&A[i]);
}
p=createlist(&pi,N,A);
m=p->data;
while(p!=p->next)
{
for(j=1;j<(m-1);j++)
{
p=p->next;
}
m=p->next->data;
printf("%d->",m);
temp=p->next;
p->next=temp->next;
free(temp);
p=p->next;
}
printf("%d\n",p->data);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252253.html
標籤:C語言
下一篇:問一下求值順序
