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

📄 02051321.c

📁 用C语言实现的猴子选大王的程序
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
struct listNode{
  int data;
  struct listNode * nextPtr;
};
typedef struct listNode LISTNODE;
typedef LISTNODE * LISTNODEPTR;

void create(LISTNODEPTR *,int);
void del(LISTNODEPTR *,int);
main()
{
      LISTNODEPTR startPtr=NULL;
      int n,m,k=1;
      printf("请输入猴子个数.\n");
      scanf("%d",&n);
      create(&startPtr,n);
      printf("请输入每次被淘汰的猴子的序号值.\n");
      scanf("%d",&m);
      printf("被淘汰的猴子的序号依次为:"); 
      while(k<=n-1){
        del (&startPtr,m);
        k++;
        }
        printf("\n大王是:%d",startPtr->data);
        system("PAUSE");
        return 0;
        }
void create(LISTNODEPTR *sPtr,int m)
{
     LISTNODEPTR newPtr,lastPtr=NULL;
     int i;
     for(i=1;i<=m;i++){
        newPtr=(LISTNODEPTR)malloc(sizeof(LISTNODE));
        if(newPtr!=NULL){
           newPtr->data=i;
           newPtr->nextPtr=NULL;
           if(*sPtr==NULL){
              *sPtr=newPtr;
              lastPtr=newPtr;
           }
           else{
              lastPtr->nextPtr=newPtr;
              lastPtr=newPtr;
           }
        }
     }
    lastPtr->nextPtr=*sPtr;
}
void del(LISTNODEPTR * sPtr,int b)
{
     LISTNODEPTR tempPtr,currentPtr;
     int j=1,num;
     tempPtr=* sPtr;
     while(j<=b-2){
       tempPtr=tempPtr->nextPtr;
       j++;
     }
     currentPtr=tempPtr->nextPtr;
     num=currentPtr->data;
     tempPtr->nextPtr=currentPtr->nextPtr;
     *sPtr=tempPtr->nextPtr;
     free(currentPtr);
     printf("%d  ",num);
     }
     
       
     

⌨️ 快捷键说明

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