编程论坛 » C语言论坛 » 求 算法
高级会员
帖子:608精华:0积分:6988在线:384 小时注册:2008-2-15
查看详细资料
TOP
帖子:765精华:0积分:8378在线:314 小时注册:2007-10-13
查看个人网站
注册会员
帖子:117精华:0积分:1675在线:201 小时注册:2008-1-24
以下是引用 广陵绝唱 在 2008-5-5 00:55 的发言: 答:加强学习,赶超先进。 问:遇到困难怎么办? 答:尽力攻克。 问:实在无法理解怎么办? 答:去求教。 问:有个喜欢在雨中飞的鸟儿有个算法的论坛,你去那吧。 答:丈夫岂食嗟食? 问:那你可能无法快速掌握。 答:那就打好基础慢慢来。 ~~~~~ ...
帖子:907精华:1积分:9698威望:1 在线:239 小时注册:2007-3-2
版主
帖子:2259精华:1积分:23871威望:6 来自:湖北工业大学在线:543 小时注册:2007-11-16
/*************************************************************************** 呵呵,终于把它作出来了,终于依样画葫芦,把 快排弄出来了。虽然也经历了数次错误,虽然现在还 不能很熟练地使用它,但终究是明白了,程序也正常 运行。 心情很愉快。 ***************************************************************************/ #include<stdio.h> #include<string.h> #define N 10000 void px(char a[],int i,int j) /*快速排序函数*/ { char c,V; int I=i; int J=j; V=a[(int)(i+j)/2]; while(1) { while(i<J&&a[i]<V) i++; while(j>I&&a[j]>V) j--; if(i>j) break; if(i<j) { c=a[i]; a[i]=a[j]; a[j]=c; } i++; j--; } if(I<j) px(a,I,j); if(i<J) px(a,i,J); } int main(void) { char a[N];/*用于输入待检查的数据*/ int i,j,n,k; printf("下面输入数据,enter结束输入:\n"); gets(a); /*输入数据*/ n=strlen(a); px(a,0,n-1); /*排序*/ puts(a); for(i=0;i<n;++i) { k=0; for(j=i;j<n;++j) if(i!=j&&a[i]==a[j]) /*当遇到相同数据时*/ { ++i; ++k; } if(k>0) /*当k值大于0,说明有相同数据,并输出*/ printf("\n共有%d个相同的%c.\n",k+1,a[i]); } if(k==0) /* 当k值为0时,说明没有相同数据。*/ printf("没有相同的数据.\n"); system("pause"); return 0; }
论坛元老
帖子:4022精华:0积分:43624威望:1 来自:南京师范大学在线:1647 小时注册:2006-12-28