📄 cpp1.3.cpp
字号:
#include "stdlib.h"
#include "stdio.h"
#define N 5
typedef struct node
{ int num;
struct node *next;
}linknode,*link;
/*Creat a cercle list*/
link Creatlist(int m)
{
int i;
link head=NULL,p=NULL,q=NULL;
head=(link)malloc(sizeof(linknode));
p=head;
for(i=1;i<=m;i++)
{
q=(link)malloc(sizeof(linknode));
q->num=i;
if(i==1) {head->next=q;p=q;continue;}
p->next=q;
p=q;
p->next=NULL;
}
p->next=head;
return head;
};
/*delete a number*/
link Delete(link head,FILE *fq,link p,int n)
{
int i;
link q=NULL;
for(i=1;i<n;i++)
{ if(p->next==head)
{q=head->next;p=q;}
else
p=p->next;
}
q=p->next;
if(q==head)
q=q->next;
p->next=q->next;
fprintf(fq,"%d ",q->num);
return p;
};
void main()
{
FILE *fp,*fq;
int m,n,i,j;
link head,q,p=NULL;
if((fp=fopen("01.in","r"))==NULL) {printf("can not open file: o1.in!\n"); exit(1);}
if((fq=fopen("01.out","w"))==NULL) {printf("can not open file: o1.out!\n"); exit(1);}
for(i=0;i<N;i++)
{
fscanf(fp,"%d%d",&m,&n);
head=Creatlist(m);
p=head;
for(j=0;j<m;j++)
{
p=Delete(head,fq,p,n);
}
fprintf(fq,"\n");
}
fclose(fp);
fclose(fq);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -