日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】

發(fā)布時(shí)間:2024/7/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

主要問題在于刪除約瑟夫環(huán)的數(shù),結(jié)果一直出不來,看了好幾天改了好幾次都改不對(duì)

#include

#include

typedef struct ysf

{

int num;

struct ysf*next;

}YSF;

YSF*creat(int aa[])

{

int i;

YSF *head=NULL,*p1=NULL,*p2=NULL;

head=p1=p2=(YSF*)malloc(sizeof(YSF));

head->num=aa[0];

head->next=NULL;

for(i=1;i<10;i++)

{

p1=(YSF*)malloc(sizeof(YSF));

p1->num=aa[i];

p2->next=p1;

p2=p1;

p1->next=NULL;

}

p1->next=head;//這里我都指向頭指針了

return head;

}

void list(YSF*head)

{

int i;

YSF*p=head;

for(i=0;i<10;i++)

{

printf("%d\t",p->num);

p=p->next;

}

}

YSF*del(YSF*head,int b[],int num)

{

YSF *p1,*p2;

int i=0;

p1=head;

while(b[i]%num!=0)

{

p2=p1;//存儲(chǔ)p1

p1=p1->next;

if(i==9) i=0;//大于一次循環(huán)的時(shí)候i肯定要超過9,這時(shí)候需要把i置0

else

{

++i;//若沒有大于9,就讓i自增

}

if(b[i]==0) //這是相對(duì)大于一次循環(huán)說的,因?yàn)橐淮窝h(huán)后,肯定有數(shù)被刪了,被刪的肯定被置0,只要被置0,就跳過

{

++i;// 如果是,就跳過這個(gè)數(shù)組元素

}

if(b[i]%num==0) //剛才不是自增了嗎,所以要驗(yàn)證新的數(shù)組元素是不是我們想要的

{

printf("%d\n",b[i]);//如果是,就打印出來

b[i]=0;//并把我們想要的數(shù)置0,方便后面的循環(huán)檢查

p2->next=p1->next;//鏈表同時(shí)刪除這個(gè)數(shù)

p1=p1->next;

++i;//繼續(xù)自增

}

}

}

int main()

{

YSF*head=NULL;

int m=3;

int a[]={1,2,3,4,5,6,7,8,9,10};

head=creat(a);//創(chuàng)建鏈表

list(head);//這個(gè)可以不用打印的,但是還是打印好了

del(head,a,m);

system("pause");

return 0;

}

--( ̄▽ ̄)我怎么可能天天作死嘛,我要是天天作死,我就從這個(gè)世界上消失!

|ㄏ( ̄▽ ̄)嗯?【背后一涼】有什么在拉我?

|∑(っ°Д°;)っ啊咧?!?!

|°Д°;)っ|救命!!!

|°;)っ救。。。命。。。

|っ救。。。

|-------

總結(jié)

以上是生活随笔為你收集整理的约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。