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);
}
请问哪里出错了,我每次运行程序输入任何值都会报错。能在这基础上修改吗?(跪求不要另外编一个。。) 展开
我写的是
#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);
}
请问哪里出错了,我每次运行程序输入任何值都会报错。能在这基础上修改吗?(跪求不要另外编一个。。) 展开
3个回答
展开全部
#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);
}
展开全部
修改函数为:
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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
{int i;
int *p,*t;
t=p; 这个P指针没有赋值
我觉得直接这样就行了 函数也不用返回值了 因为不止有一个数.
if(a[i]==x)
{
printf("a[%d] ", i);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询