c语言程序 高手请进

[复制链接]
查看11 | 回复1 | 2010-5-22 18:28:07 | 显示全部楼层 |阅读模式
#include
intsearch (int *a,int n,int xsearch );
main()
{
int x;
int num[]={1,2,3,4,5,6,7,8,9,0};
int result;
printf("请输入一个数字X:");
scanf("%d",&x);
result=search(num,10,x);//条用函数
if(result <=10)
{
printf("x在数组中的下标是%d\n",result);
}
else
{
printf("x在数组中不存在\n");
}
printf("%d",result);
}
int search (int *a,int n,int xsearch )
{
int *p;
for(p=a;p<a+n;p++)
{

if(*p==xsearch)

{

break;

}
}
if(p<a+n)
{

return p-a;
}
else
{return a-p;}//这里是什么意思,详细点
}

回复

使用道具 举报

千问 | 2010-5-22 18:28:07 | 显示全部楼层
你这个程序我在TC上运行了!else{return a-p;}这里a-p就有问题,如果p<a+n不成立,那么就只有一种情况了p指向a+9的下一个空间,系统会认为是a+10(当然实际上没有这个);所以运行的结果显示只要不是数组中的数它的结果都是:x在数组中的下标是-10-10显然这个程序有点小问题!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行