📄 link.cpp
字号:
#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
struct Lnode{
int num;
int key;
struct Lnode *next;
};
main(int arge,char *argv[])
{
int n,m,i,k,u;
struct Lnode *head,*p,*s,*q;
n=atoi(argv[1]);
m=atoi(argv[2]);
for(i=1;i<arge;i++)
{
if(atoi(argv[i])==0)
{u=0;
break;
}
}
if(u==0)
{
printf("ERROR,重新输入命令行参数\n");
return;
}
else if(n!=arge-3) //考虑输入的n与密码个数不等时报错
printf("ERROR,重新输入命令行参数\n");
else{
// 创建一个循环链表
s=(struct Lnode*)malloc(sizeof(struct Lnode));
for(i=1;i<=n;i++){
if(i==1) head=s;
p=s; //P指向新建的接点
p->num=i;
p->key=atoi(argv[i+2]);
s=(struct Lnode*)malloc(sizeof(struct Lnode));
p->next=s;
}
p->next=head; //所有结点创建完毕,把尾指针与头指针相连
free(s);
p=head;
printf("编号顺序依次为:");
//找结点并删除
for(i=1;i<=n;i++){
for(k=1;k<m;k++) {q=p; p=p->next;} //找到要删除的结点,q前驱,
m=p->key;
printf(" --> %d",p->num); //并保存要删除结点中的密码,以作为下次循环的条件
p=p->next; //删除结点,作结点前后结点的连接
q->next=p;
}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -