原题链接:明明的随机数
解题思路:
用链表写了一串
注意事项:
参考代码:
#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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复