C语言编程问题(按顺序查找) 初学 10

要求编写的程序是找出一个数组中所有目标X的位置。我写的是#include<stdio.h>#defineN10intsequential_search(inta[],in... 要求编写的程序是找出一个数组中所有目标X的位置。
我写的是

#include<stdio.h>
#define N 10
int sequential_search(int a[ ], int n, int x)
{int i;
int *p,*t;
t=p;
for(i=0; i<n; i++)
{
if(a[i]==x)
{
*p=i+1;
p++;
}

}
*p='\0';
return t;
}
void main()
{int x;
int *j;
int a[N]={1,3,5,2,4,3,0,9,8,7};
scanf("%d", &x);
j=sequential_search(a, N, x);
printf("The position is: %d\n",j);
}
请问哪里出错了,我每次运行程序输入任何值都会报错。能在这基础上修改吗?(跪求不要另外编一个。。)
展开
 我来答
xoaxa
推荐于2018-03-29 · TA获得超过8609个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3466万
展开全部
#include <stdio.h>
#define N 10
int sequential_search(int a[], int n, int x) {
int i;
for(i = 0; i < n; i++)
if(a[i] == x) return i + 1;
return 0; 
}

void main() {
int x,index;
int a[N] = {1,3,5,2,4,3,0,9,8,7};
printf("x = ");
scanf("%d",&x);
index = sequential_search(a,N,x);
if(index) printf("The position is: %d\n",index);
else printf("Not find : %d\n",x);
}
百度网友9761bdf1d
2015-01-11 · TA获得超过589个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:356万
展开全部

修改函数为:

int sequential_search(int a[ ], int n, int x)
{int  i;                         
//int *p,*t;
//t=p;这里用了指针,不需要啊!
  for(i=0; i<n; i++)
    {
      if(a[i]==x)     
         { return i+1; //直接返回位置,位置从1起算,比下标大1
           //*p=i+1; 删除
           //  p++; 删除
         }
         
  }
 //    *p='\0'; 删除
  return 0; //退出循环,即没找到,返回0
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fastfs
2015-01-11 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:799万
展开全部
int sequential_search(int a[ ], int n, int x)
{int i;
int *p,*t;
t=p; 这个P指针没有赋值
我觉得直接这样就行了 函数也不用返回值了 因为不止有一个数.
if(a[i]==x)
{
printf("a[%d] ", i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式