原题链接:明明的随机数
解题思路:
用链表写了一串
注意事项:
参考代码:
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复