本文目錄一覽:
如何用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);
}
原創文章,作者:PKUEN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317526.html