大学c语言搜题app。大学c语言搜题app原名叫做菜鸟学C语言是一款非常好用的学习c语言的手机软件
软件功能
2、错题库:可自动加练习过程中错题加入收藏,以便反复练习。
3、上机操作题:300道上机操作题,程序填空题、程序修改题、程序设计题。
软件优势
1、选择题:按照考点分类的选择题习题,并有答案解析。
2、上级操作题:300道上机操作题,程序填空题、程序修改题、程序设计题。
3、最新押题:最新考试押题3套。
4、考点汇总:包含复习的考点。
5、错题库:可自动加练习过程中错题加入收藏,以便反复练习。
6、收藏夹:可在练习过程中自行收录题目到收藏夹,形成自己的小题库,针对性练习,提高通过率。
软件特色
1、随时随地都能够学习,而且还支持下载保存你学习内容离线继续学习。
2、同学们能够直接通过搜索引擎来查询寻找你感兴趣对你内容。
3、解答问题的办法非常多,可以选择通过拍照来答题,也可以选择输入题目来解答。
#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=0i<mi++)
{
scanf("%d",&a[i])
}
for(i=0i<mi++)
{
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
}
这种查找方法的数组必须是从小到大的,用遍历的话就没这个问题了。
/*宽度优先搜索*/#define Adj 1
#define Unadi 0
#define N 6
typedef struct
{int Number[N]
int front
int rear
}Queue,*pQueue
void InitQueue(pQueue q)
{q->front=0
q->rear=0
}
void EnQueue(pQueue q,int number)
{int rear
rear=(q->rear+1)%N
if(rear==q->front)
{printf("The Queue is full,cannot enter the queue.")
}
else
{q->Number[q->rear]=number
q->rear=rear
}
}
int OutQueue(pQueue q)
{int number
if(q->front==q->rear)
{printf("The Queue is empty.")
return -1
}
number=q->Number[q->front]
q->front=(q->front+1)%N
return number
}
int Isempty(pQueue q)
{if(q->front==q->rear)return 1
else return 0
}
void BFSTraverse(int v,int (*a)[6],int *dist,int *prev)
{Queue q
int number,i
int s[N]
InitQueue(&q)
for(i=1i<Ni++)
s[i]=0
s[v]=1
prev[v]=v
dist[v]=0
EnQueue(&q,v)
while(!Isempty(&q))
{ number=OutQueue(&q)
for(i=1i<Ni++)
{if(!s[i]&&a[number][i]==Adj)
{dist[i]=dist[number]+1
prev[i]=number
s[i]=1
EnQueue(&q,i)
}
}
}
}
main()
{int a[N][N]
int v,dist[N],prev[N],i,j,k
printf("please input the relation of points:")
for(i=1i<Ni++)
for(j=1j<Nj++)
scanf("%d",&a[i][j])
printf("Please input the number of initial point:")
scanf("%d",&v)
BFSTraverse(v,a,dist,prev)
for(i=1i<Ni++)
{printf("The %d number point's distant is:%d\n",i,dist[i])
k=i
while(k!=v)
{printf("%d<<--",k)
k=prev[k]
}
printf("%d\n",v)
}
}
宽度优先搜索需借助队列的帮助
2.深度优先搜索没时间在再写,抱歉