萌新手打链表但是发现后几个输出会出现重复数字??
查看原帖
萌新手打链表但是发现后几个输出会出现重复数字??
160870
迟陌楼主2023/7/18 11:29

看了好几遍代码感觉逻辑没什么问题??难道是我的链表的什么操作出了问题吗?求大佬解答

#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int data;
	node *next;
};
node *p,*head,*r;
int a[100001];
int read()
{
	int s=0;
	char c=getchar();
	while(c>='0'&&c<='9')
	{
		s=s*10+c-'0';
		c=getchar();
	}
	return s;
}
void del(node *p)
{
	node *s;
	s=new node;
	s=p->next;
	p->next=s->next;
	free(s);
}
int main()
{
	int m,n;
	m=read();
	n=read();
	head=new node;
	head->next=NULL;
	head->data=1;
	r=head;
	for(int i=2;i<=m;i++)
	{
		p=new node;
		p->data=i;
		p->next=NULL;
		r->next=p;
		r=p;
	}
    r->next=head;
    r=head;
	int sum=n;
	while(m>0)
	{
		if(sum==1)
		{
			printf(" %d ",r->data);
			sum=n;
			m--;
			del(r);
		}
		else
		{
			r=r->next;
			sum--;
		}
		printf("*%d",sum);
	}
	return 0;
}

输入8 5,输出会变成5 2 8 7 7 4 4 4

2023/7/18 11:29
加载中...