使用引用调用查找数组中的最大元素(函数和指针)
Finding largest element in a array using call by reference ( Functions & Pointers )
我想使用函数和指针的引用调用方法找到数组中的最大元素。我在函数调用时出错。这是我的尝试:
#include <stdio.h>
void bigg(int *a[10],int *N);
int main()
{
int a[10],i,N,p;
printf("Enter the total number of elements in the array:\n");
scanf("%d",&N);
printf("Enter the elements in the array one by one:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
bigg(&a,&N);
}
void bigg(int *a[10],int *N)
{
int i,max;
max = *a[0];
for(i=0;i<*N;i++)
{
if( *a[i] > max)
{
max = *a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}
您传递的内容与预期参数不匹配。
函数 bigg
的第一个参数是 int *[10]
,它是一个 指针数组 。您传递的 &a
是一个 指向数组 的指针,类型为 int (*)[10]
.
你实际上一个都不想要。在大多数情况下,数组名称会转换为指向其第一个元素的指针。因此,如果您通过它,您将可以访问这些元素。因此,请更改您的函数定义以接受第一个参数的 int *
(以及第二个参数的 int
,因为您没有更改 N
):
void bigg(int *a, int N)
{
int i,max;
max = a[0];
for(i=0;i<N;i++)
{
if( a[i] > max)
{
max = a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}
并这样称呼它:
bigg(a,N);
你的指针基础知识不清楚。
对于这个问题,它有效。
#include <stdio.h>
void bigg(int a[],int *N);
int main()
{
int a[10],i,N,p;
printf("Enter the total number of elements in the array:\n");
scanf("%d",&N);
printf("Enter the elements in the array one by one:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
bigg(a,&N);
}
void bigg(int a[],int *N)
{
int i,max;
max = a[0];
for(i=0;i<*N;i++)
{
if( a[i] > max)
{
max = a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}
我想使用函数和指针的引用调用方法找到数组中的最大元素。我在函数调用时出错。这是我的尝试:
#include <stdio.h>
void bigg(int *a[10],int *N);
int main()
{
int a[10],i,N,p;
printf("Enter the total number of elements in the array:\n");
scanf("%d",&N);
printf("Enter the elements in the array one by one:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
bigg(&a,&N);
}
void bigg(int *a[10],int *N)
{
int i,max;
max = *a[0];
for(i=0;i<*N;i++)
{
if( *a[i] > max)
{
max = *a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}
您传递的内容与预期参数不匹配。
函数 bigg
的第一个参数是 int *[10]
,它是一个 指针数组 。您传递的 &a
是一个 指向数组 的指针,类型为 int (*)[10]
.
你实际上一个都不想要。在大多数情况下,数组名称会转换为指向其第一个元素的指针。因此,如果您通过它,您将可以访问这些元素。因此,请更改您的函数定义以接受第一个参数的 int *
(以及第二个参数的 int
,因为您没有更改 N
):
void bigg(int *a, int N)
{
int i,max;
max = a[0];
for(i=0;i<N;i++)
{
if( a[i] > max)
{
max = a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}
并这样称呼它:
bigg(a,N);
你的指针基础知识不清楚。 对于这个问题,它有效。
#include <stdio.h>
void bigg(int a[],int *N);
int main()
{
int a[10],i,N,p;
printf("Enter the total number of elements in the array:\n");
scanf("%d",&N);
printf("Enter the elements in the array one by one:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
bigg(a,&N);
}
void bigg(int a[],int *N)
{
int i,max;
max = a[0];
for(i=0;i<*N;i++)
{
if( a[i] > max)
{
max = a[i];
}
}
printf("The biggest element in the given array is: %d",max);
}