解题思路:
用链表写了一串
注意事项:

参考代码:

#include<stdio.h>
#include<malloc.h>
typedef struct list
{
	int date;
	struct list *pext;	
}NODE,*LIST;
LIST create();
void repeat(LIST phead);
void sort(LIST phead);
void count(LIST phead);
void print(LIST phead);
int main()
{
	LIST phead;
	phead=create();
	repeat(phead);
	sort(phead);
	count(phead);
	print(phead);
	return 0;
}
LIST create()
{
	int i,val,len;
	LIST phead=(LIST)malloc(sizeof(NODE));
	LIST arrow=phead;
	arrow->pext=NULL;
	scanf("%d",&len);
	for(i=0;i<len;i++)
	{
		LIST pnew=(LIST)malloc(sizeof(NODE));
		scanf("%d",&val);
		pnew->date=val;
		arrow->pext=pnew;
		pnew->pext=NULL;
		arrow=pnew;
	}
	return phead;
}
void repeat (LIST phead)
{
	LIST p,q,l,k;
	for(p=phead->pext;p!=NULL;p=p->pext)
	{
		for(q=p->pext,l=p;q!=NULL;)
		{
			if(p->date==q->date)
			{
				k=q;
				if(q->pext!=NULL)
				{
				l->pext=q->pext;
				q=q->pext;
				}
				else
				{
					l->pext=q->pext;
					break;
				}
				free(k);
			}
			else
			{
				q=q->pext;
				l=l->pext;
			}

		}
	}
}
void sort(LIST phead)
{
	int t;
	LIST q,p;
		for(p=phead->pext;p!=NULL;p=p->pext)
	{
		for(q=p->pext;q!=NULL;q=q->pext)
		{
			if(p->date>q->date)
			{
				t=p->date;
				p->date=q->date;
				q->date=t;
			}
		}
	}
}
void count(LIST phead)
{
	int len=0;
	LIST p=phead->pext;
	while(p!=NULL)
	{
		len++;
		p=p->pext;
	}
	printf("%d\n",len);
}
void print(LIST phead)
{
	LIST p=phead->pext;
	while(p!=NULL)
	{
		printf("%d ",p->date);
		p=p->pext;
	}
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论