Problem Description
编写函数: int *find_largest(const int a[], int n)
当传入长度为n的数组a时,函数返回指向数组最大元素的指针。
测试程序为:
#include <stdio.h>
#include <limits.h>
#define N 1005
int *find_largest(const int a[], int n);
int main()
{
int n;
int a[N], *p, i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
p = find_largest(a, n);
printf("%d", *p);
return 0;
}
/* 你的代码将被嵌在这里 */
Input Description
第一行输入一个整数n,表示数组元素的个数。
第二行为n个整数,以空格分隔。
Output Description
输出数组a的最大元素。
Sample Input
5
10 20 30 4 5
Sample Output
30
答案:
1.
#include <stdio.h>
#include <limits.h>
#define N 1005
int *find_largest(const int a[], int n);
int main()
{
int n;
int a[N], *p, i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
p = find_largest(a, n);
printf("%d", *p);
return 0;
}
int *find_largest(const int a[],int n)
{
int m = 0, i;
for (int i=0;i<n;i++)
{
if (a[m]<a[i])
m=i;//关键点!!!!!
}
return &a[m];
}
2
#include <stdio.h>
#include <limits.h>
#define N 1005
int *find_largest(const int a[], int n);
int main()
{
int n;
int a[N], *p, i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
p = find_largest(a, n);
printf("%d", *p);
return 0;
}
int *find_largest(const int a[],int n)
{
int m = 0, i = 1;
for(i = 1; i < n; i++)
{
if(a[m] < a[i])
{
m = i;
}
}
return &a[m];
}
.