關於c語言約瑟夫問題輸出序號算法
約瑟夫問題
#include#includetypedef struct node{int data;struct node *next;}LNode,*LinkList;int YSF(LinkList m,int n,int l);void main(){int x,y,z;LinkList p,q,r;//p用來指向第一個人,r、q用來實現尾插法構建鏈表p=(LinkList)malloc(sizeof(LNode));printf("請輸入總人數:");scanf("%d",&x);printf("請輸入報數大小:");scanf("%d",&y);printf("請輸入報數開始人序號:");scanf("%d",&z);r=p;for(int i=1;i<=x-1;i++){q=(linklist)malloc(sizeof(lnode));r->data=i;r->next=q;r=q;}//創建x個單鏈表q->data=x;q->next=p;//構成循環鏈表for(int j=1;j<=z-1;j++){p=p->next;}//找到開始報數人printf("請輸入序號:");int o;scanf("%d",&o);YSF(p,y,o);}int YSF(LinkList m,int n,int l){while(m->next!=m){for(int k=1;knext;}int s=1;if(l==s){printf("編號為%d的'人出列 ",m->next->data);break;}else {n++;}m->next=m->next->next;//剔除滿足報出y人的結點m=m->next;}if(m->next==m)printf("編號為%d的人出列 ",m->data);return 0; }
-
C語言自學入門技巧
學習C語言不是一朝一夕的事情,但也不需要花費很長的時間才能精通。下面小編就為大家介紹一下C語言自學入門技巧吧!C語言自學入門技巧11、程語語言其實是一個很初級的工具,但是又必須熟練的掌握它,學懂一門編程語言就好像學會了寫字,但是會寫字的人不見得會寫文章,而...
-
C語言數據結構中棧操作實驗大綱
c語言中棧是一種數據結構,後進先出,即最後進入棧的數據最先彈出。以下是本站小編搜索整理的關於C語言數據結構中棧操作實驗,需要的`朋友可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網!實驗:編寫一個程序實現順序棧的各種基本運算,並在此基礎上設...
-
在C語言中轉換時間的基本方法
本文主要介紹了在C語言中轉換時間的基本方法,分別是mktime()函數和localtime()函數的使用,供參考學習,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網!C語言mktime()函數:將時間轉換成經過的秒數頭文件:#include<time.h>定義函數:t...
-
C語言合併排序及實例代碼
歸併排序也稱合併排序,其算法思想是將待排序序列分為兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。下面是小編分享的C語言合併排序及實例代碼,一起來看一下吧。合併排序僅從算法思想上了解歸併排序會覺得很抽象,接下來就以對序列A[0],A[l]…,A...