本文目录一览:
如何用C语言顺序查找程序?
#include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a int a[10]={1,2,3,4,5,6,7,8,9,10};\x0d\x0a int i,x,y;\x0d\x0a printf("输入你要查找的数:\n");\x0d\x0a scanf("%d",x);\x0d\x0a y=0; //标记是否已找到,y=1表是找到了,y=0表示没找到\x0d\x0a for(i=0;i
回答于 2022-11-16
C语言如何用函数来实现搜索
#include stdio.h
int search(int a[],int b,int c,int i)
{
int x,y,z;
x=i+1;
z=b-1;
y=(x+z)/2;
while(x=z)
{
if(a[y]c)
{
z=y-1;
y=(x+z)/2;
continue;
}
if(a[y]c)
{
x=y+1;
y=(x+z)/2;
continue;
}
return y+1;
}
return -1;
}
int main()
{
int i,m,pos;
scanf("%d",m);
int a[m];
for(i=0;im;i++)
{
scanf("%d",a[i]);
}
for(i=0;im;i++)
{
pos=search(a,m,a[i],i);
if(pos!=-1)
{
printf("FOUND a[%d]=%d, position is %d\n",i,a[i],i+1);
return 0;
}
}
if(pos==-1)
{
printf("NOT FOUND\n");
}
return 0;
}
这种查找方法的数组必须是从小到大的,用遍历的话就没这个问题了。
用C语言编写文本检索程序
#include"stdio.h"
#include"stdlib.h"
main()
{
FILE *fp;
char str[80],*p,*head;
int n=0;
long filelen;
loop1: printf("请输入您要用于操作的文件名及其完整路径:\n");
gets(str);
fp=fopen(str,"rb+");
if(fp==NULL)
{
printf("找不到指定文件,要指定新文件吗?(y=是的,要指定新文件\telse=不用了,退出程序)\t");
gets(str);
if((char)tolower((int)str[0])=='y')goto loop1;
else exit(0);
}
printf("请输入您要查找并替换的字符(如果输入的字符数量大于1本程序会自动舍去多余的部分)\n");
gets(str);
printf("请输入您要将找到的字符或字符串替换为的字符(自动舍去多余部分)\n");
gets(str[1]);
fseek(fp,0L,2);
filelen=ftell(fp);
fseek(fp,0L,0);
head=(char *)malloc(filelen);
fread(head,filelen,1,fp);
for(p=head;phead+filelen/1L;p++)if(*p==str[0]){*p=str[1];n++;}
fseek(fp,0L,0);
fwrite(head,filelen,1,fp);
fclose(fp);
printf("替换已经完成,共替换%d处\n",n);
}