谁能帮我看看这个C语言程序有什么问题为什么得不到正确答案(自己写的)谢谢

来源:百度知道 编辑:UC知道 时间:2024/07/07 11:18:35
main()
{ int a(int b[6]);
int c[6],i,j,t;
printf("shu ru a[0]:\n");
scanf("%d",&c[0]);
printf("shu ru qi ta yuan shu a[1]-a[5]:\n");
for(i=1;i<=5;i++)
{ j=i;
scanf("%d",&c[i]);
if(c[i]>=c[i-1]);
else
{ printf("chong xin shu ru:\n");
i=j-1;
}
}

t=a(c);
printf("zai shu zu zhong de xia biao wei:%d",t);
}
int a(int b[6])
{ int p=1,r,w,y,z,num,f;
char v;
printf("shu ru yi ge shu:\n");
scanf("%d",&num);
if(num<b[0]||num>b[5])
r=-1;
while(p)
{ w=0;
y=5;
while((p==1)&&(w<=y))
{ z=(w+y)/2;
if(num==z)

你的意思是输入升序数组,再用折半查找输入的数在数组足的位置?
也太复杂了吧看你弄的。
帮你改了下,还有吗弄那么多变量出来干吗?可以写成一个函数吧?你自己再精简下吧。
#include<stdio.h>
void main()
{
int a(int b[6]);
int c[6],i,j,t;
printf("shu ru c[0]:\n"); /*是c才以对吧 */
scanf("%d",&c[0]);
printf("shu ru qi ta yuan shu c[1]-c[5]:\n");
for(i=1;i<=5;i++)
{ j=i;
scanf("%d",&c[i]);
if(c[i]>=c[i-1]);
else
{ printf("chong xin shu ru:\n");
i=j-1;
}
}

t=a(c);
printf("zai shu zu zhong de xia biao wei:%d",t);
}
int a(int b[6])
{ int p=1,r,w,y,z,num,f;
char v;
printf("shu ru yi ge shu:\n");
scanf("%d",&num);
if(num<b[0]||num>b[5])
r=-1;
wh