编写函数 int *find(int a[],int n,int x) 功能为在有n个元素的数组a中查找首个整数x,若找到则返回该元素的地址,否则返回空指针。 主函数中输入n,再输出n个整数存入数组,再输入整数x,最后输出在数组中查找x的结果。
时间: 2023-05-31 10:18:23 浏览: 326
### 回答1:
以下是函数 int *find(int a[],int n,int x) 的代码:
```c
int *find(int a[], int n, int x) {
for (int i = ; i < n; i++) {
if (a[i] == x) {
return &a[i];
}
}
return NULL;
}
```
主函数中的代码如下:
```c
#include <stdio.h>
int *find(int a[], int n, int x);
int main() {
int n, x;
printf("请输入数组元素个数n:");
scanf("%d", &n);
int a[n];
printf("请输入%d个整数:", n);
for (int i = ; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入要查找的整数x:");
scanf("%d", &x);
int *p = find(a, n, x);
if (p != NULL) {
printf("在数组中查找到了%d,它的地址是%p\n", x, p);
} else {
printf("在数组中没有找到%d\n", x);
}
return ;
}
```
运行结果示例:
```
请输入数组元素个数n:5
请输入5个整数:1 2 3 4 5
请输入要查找的整数x:3
在数组中查找到了3,它的地址是x7fff5fbff9b8
```
### 回答2:
题目要求编写一个名为find的函数,该函数的功能为在有n个元素的数组a中查找首个整数x,若找到则返回该元素的地址,否则返回空指针。
首先,我们可以定义一个指向整型数组的指针p,作为函数返回值。函数中使用for循环遍历数组a,如果找到了整数x,则返回该元素的地址,即p=&a[i]。如果没有找到整数x,则在for循环结束后返回空指针,即p=NULL。
函数的定义如下:
int *find(int a[],int n,int x)
{
int i;
int *p;
for(i=0;i<n;i++)
{
if(a[i]==x)
{
p=&a[i];
return p;
}
}
return p;
}
接下来,我们可以在主函数中输入n,再输出n个整数存入数组,再输入整数x,最后输出在数组中查找x的结果。主函数的代码如下:
int main()
{
int n,x;
int a[100];
int *p;
int i;
printf("请输入n:");
scanf("%d",&n);
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("请输入要查找的整数x:");
scanf("%d",&x);
p=find(a,n,x);
if(p==NULL)
{
printf("在数组中未找到整数x");
}
else
{
printf("在数组中找到整数x,该元素的地址为:%p",p);
}
return 0;
}
在主函数中,我们定义了整数n、整数x、整型数组a以及整型指针p。在输入n之后,使用for循环输入n个整数存入数组a,接着输入整数x。然后调用find函数查找整数x,如果查找成功,输出该元素的地址;否则输出未找到整数x的提示信息。
总之,该程序采用函数封装思想实现了在有n个元素的数组a中查找首个整数x的功能,可以方便地查找指定整数在数组中的位置。
### 回答3:
在本题中,要编写一个函数,根据输入的数组a、数组元素数量n和目标整数x,在数组a中查找首个整数x。如果找到,则返回该元素的地址;否则,返回空指针。
此题需要考虑到数组元素的数据类型是整数类型。我们可以使用int类型来定义数组a和目标整数x。
在函数中,我们需要遍历数组a来查找目标整数。如果找到,则返回该元素的地址;否则,返回空指针。我们可以使用for循环来遍历数组a,通过if语句判断当前元素是否为目标整数x。如果找到了目标整数,就可以返回该元素的地址了。
下面是代码:
```c
#include <stdio.h>
int *find(int a[], int n, int x);
int main()
{
int n, x, i;
int a[100];
// 输入 n 和数组元素
printf("请输入数组元素数量:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
// 输入目标整数 x
printf("请输入目标整数 x:");
scanf("%d", &x);
// 在数组中查找 x
int *p = find(a, n, x);
// 输出查找结果
if (p == NULL)
{
printf("没有找到目标整数。\n");
}
else
{
printf("目标整数 %d 的地址是 %p,对应的数组元素是 %d。\n",x, p, *p);
}
return 0;
}
int *find(int a[], int n, int x)
{
int i;
for (i = 0; i < n; i++)
{
if (a[i] == x)
{
return &a[i];
}
}
return NULL;
}
```
注意,函数中返回的是地址,而不是数组元素的值。因此,我们需要在主函数中对找到的地址进行解引用(*p)来获取对应的数组元素的值。
阅读全文