int main(){
//str相当于保存字符的数组
char *str = "abc abc bcd bcd efg fff"
//用于保存三个连续字母出现的频次
int tag[25] = {}
int max = 0,i
char *ch
ch = str
while(*ch != '\0'){
if(*ch == ' '){
ch += 1
}else{
if(*(ch + 1) == ' ')
{
ch += 2
} else{
if(*ch + 1 == *(ch + 1) ){
if(*(ch + 2) == ' '庆戚){
ch += 3
}else{
if(*(ch) + 2 == *(ch + 2))
{
tag[*ch - 'a'] ++
ch += 1
}else{
ch += 2
}
}
}else{
ch += 1
}
}
}
}
max = tag[0]
//查询出现频次最高的字符串
for(i = 1i <25i ++){
if(tag[i] >max)
max = tag[i]
}
//输出查询结果
if(max == 0)
{
printf("没有找到三个字母连续的字符串\n")
}else{
printf("出现频枝搭次最多的有:\n")
for(i = 0i <25i ++)
if(tag[i] == max)
printf("%c%c%c\n",'a' + i,'a' + i + 1,'a' + i +2)
}
return 0
}
search(id,content){
if id==null then
{
for item in items
{
if item.content has content then
output item
endif
}
else{
for item in items
{
if item.id==id then
output item
endif
}
}
}
#include<stdlib.h>void
sort(int
a[],int
n){
/*排序函数,要使用二分法查找就必须对数组进行排序*/
int
i,k
for(i=0i<ni++){
int
min=i
for(k=i+1k<nk++)
if(a[min]>a[k])min=k
if(i!=min){
a[min]+=a[i]/*这里是运用加减法交换两个数*/
a[i]=a[min]-a[i]
a[min]-=a[i]
}
}
}
int
find(int
a[],int
n,int
key){/*二分法查找;参数:数组名,数组长度,查找关键字*/
int
min=0,max=n-1/*二分法查找头尾变量*/
while(min<max){/*如果最头的变量值大于最尾变量的值,则查找不到,查找失败*/
int
cen
=
(min+max)/2
if(a[cen]==key)
return
cen/*如果查到,则返回关键字在排序数组的下标*/
if(cen==min
||
cen==max)break/*如果中亮旦间变量等于头尾任一个变量,同样查找失败*/
if(a[cen]>key)
max=cen
else
min=cen
}
return
-1
}
void
main(){/*主程序只是为了证明敬肆扰两个函数的可行性,可以自己编写雹雹*/
int
a[]={14,10,25,36,87,95,10,12,13,8},i
sort(a,10)
i=find(a,10,11)
if(i!=-1)
printf("be
found")
else
printf("no
found")
getch()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)