约瑟夫环报数,输入学生数量StuNum,报数上限m,从第一个学生开始报数,第m个输出,随后以下一个学生为新的节点从头报数,报完为止。

#include<iostream>

using namespace std;

typedef struct LNode{

  string name;

  int num;

  string gender;

  int age;

  string Class;

  string health;

  struct LNode* next;

}LNode,*Linklist;

  Linklist CreatCirclelist(Linklist &L,int StuNum){

   L = new LNode;

   LNode* newNode = L;

   for(int i = 0;i<StuNum;i++){

   LNode* p = new LNode;

   cin>>newNode->name>>newNode->num>>newNode->gender>>newNode->age>>newNode->Class>>newNode->health;

       newNode->next = p;

       newNode = p;

      newNode->next = L;

  }    

  }

  void printlist(Linklist &L,int StuNum,int m){

  LNode*newNode = L;

  LNode*temp = L;

  for(int i = 0;i<StuNum;i++){

      if(i==m-1){

   cout<<newNode->name<<" "<<newNode->num<<" "<<newNode->gender<<" "<<newNode->age<<" "<<newNode->Class<<" "<<newNode->health<<" "<<endl;

      temp->next = newNode->next;

      delete newNode;

   newNode = temp->next;

      break;

    }

    temp->next = newNode;

  }

   L->next = newNode;

 }

  int main(){

   int StuNum;

   cin>>StuNum;

   int m;

   cin>>m;

   Linklist L;

   CreatCirclelist(L,StuNum);

      for(int i = 0;i<StuNum;i++) 

    printlist(L,StuNum,m);

    return 0;

   

  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值