⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sm.c

📁 任务:一堆猴子都有编号
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct monkey 
{
	int num;/*猴子号码*/
	struct monkey*next;
}ListNode,*Linklist;
/*=======================================主函数===============================*/
void main()
{
	Linklist R;
	int m,n,sn;
	Linklist creat(int m,Linklist R);
	Linklist XDW(int m,int n,Linklist R);
	for(;;)
	{

	    printf("请输入猴子总数m和数到n个猴子出队(n<m):\n");
	    scanf("%d%d",&m,&n);
		if(m==1)
			printf("只有你一只猴子,你就是猴子大王,恭喜恭喜!\n");
          else if(n>=m||n==0)
		   printf("你的输入错误,请重新输入\n");
		  else
		  {
            R=creat(m,R);
	        R=XDW(m,n,R);
		  }
	        printf("============================================\n");
	        printf("如果你想退出请输入0,如果要继续输入请输入1:\n");
	        scanf("%d",&sn);
	        if(sn==0)
	    	    break;
	}
}
/*==============================建立单循环链表==============================*/
Linklist creat(int m,Linklist R)
{
	ListNode *p,*q;
	int i;
	R=q=(ListNode*)malloc(sizeof(ListNode));
	for(i=1;i<m;i++)
	{
		p=(ListNode*)malloc(sizeof(ListNode));
		q->num=i;
		q->next=p;
		q=p;
	}
	p->num=m;
	p->next=R;
	R=p;
	return R;
}
/*=============================选大王=====================================*/
Linklist XDW(int m,int n,Linklist R)
{
	int i,j;
	ListNode *p,*q;
	p=R;
	for(i=1;i<=m-1;i++)
	{
		for(j=1;j<=n-1;j++)
		p=p->next;
		q=p->next;
		p->next=q->next;
		free(q);
	}
	printf("最终结果大王是第%d号猴子\n",p->num);
	printf("============================================\n");
	R=p;
	return R;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -