解题思路:
用链表写了一串
注意事项:
参考代码:
#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语言训练-阶乘和数* (C语言代码)浏览:1060 |
震宇大神的杀毒软件 (C语言代码)浏览:1348 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:696 |
拆分位数 (C语言代码)浏览:1361 |
【偶数求和】 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:614 |
【绝对值排序】 (C语言代码)浏览:892 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
【偶数求和】 (C语言代码)浏览:460 |