精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 編號為1,2,…,n的n個人按順時針方向圍坐一圈

    編號為1,2,…,n的n個人按順時針方向圍坐一圈
    每人持有一個密碼(正整數(shù)),一開始人選一個正整數(shù)作為報(bào)數(shù)上限m,從第一個人開始按順時針方向從自1開始順序報(bào)數(shù),報(bào)道m(xù)時停止報(bào)數(shù).報(bào)m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下一個人開始重新從1報(bào)數(shù),如此下去,直至所有人全部出列為止,設(shè)計(jì)一個程序求出出列順序.
    采用單向循環(huán)鏈表模擬此過程,按照出列的順序印出各人的編號
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
    測試數(shù)據(jù):
    m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,則正確的輸出是什么?
    輸入數(shù)據(jù):處理輸入數(shù)據(jù),輸入m的初值,n ,輸入每個人的密碼,建立單循環(huán)鏈表.
    不要c++
    其他人氣:984 ℃時間:2020-08-01 05:23:26
    優(yōu)質(zhì)解答
    #define ERROR 0
    #define OK 1
    #include
    #include
    struct CirNode/*定義每個結(jié)點(diǎn)的類型 */
    {
    int data;/*每個人所擁有的密碼*/
    int num;/*每個人在圈中的位序*/
    struct CirNode *next;
    };
    int a[30]; /*人數(shù)要求≤30 */
    struct CirNode *CreateList(int n)/*生成n個結(jié)點(diǎn)的單向循環(huán)鏈表 */
    {
    struct CirNode *L,*p,*q;
    int i;
    int j=1;
    L=q=(struct CirNode*)malloc(sizeof(struct CirNode));/*建立一個不帶頭結(jié)點(diǎn)的單向循環(huán)鏈表 */
    if(!q) return ERROR;
    printf("shu ru mei ge ren de mi ma:\n");
    q->num=j;
    printf("%d.data=",j);
    scanf("%d",&q->data);
    j++;
    q->next=L;
    for(i=1;inum=j;
    printf("%d.data=",j);
    scanf("%d",&p->data);
    j++;
    q->next=p;
    p->next=L;
    q=q->next;
    }/*for*/
    return (L);
    }/*Create*/
    struct CirNode *DeleteList(struct CirNode *L,int m,int n)/*報(bào)m的人出列*/
    {
    int i,j=0;
    int k=n;
    struct CirNode *p,*q,*pre;
    pre=p=L;
    do
    {
    i=1;
    while(inext;i++;}
    if(m==1)
    {
    while(pre->next!=p) pre=pre->next;
    m=p->data;/*得到新的密碼 */
    a[j]=p->num;/*得到出列人的序號 */
    q=p;
    pre->next=p->next;
    p=p->next;
    free(q);
    L=pre=p;/*讓新的報(bào)1的人作為頭結(jié)點(diǎn) */
    k--;j++;
    }/*if */
    else
    {
    q=p->next;
    m=q->data;
    a[j]=q->num;
    p->next=q->next;
    p=q->next;
    free(q);
    L=pre=p;
    k--;j++;
    }/*else*/
    }while(k>1);
    a[j]=p->num;/*最后一個出列人的序號 */
    printf("xian zai suo you ren chu lie.\n");
    return (L);
    }/*DeleteList*/
    int main()
    {
    struct CirNode *L;
    int i,n,m;
    printf("\n");
    printf("qing shu ru ren shu,n=");
    scanf("%d",&n);
    if(n>30||n
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版