2-1 找最大值及其下标 分数 5 全屏浏览题目 作者 王跃萍 单位 东北石油大学 在一维整型数组中找出其中最大的数及其下标。 函数接口定义: int fun(int *a,int *b,int n); 其中形参a 、b、n 都是用户传入的参数。函数fun的功能是在指针a所指向的一维数组中找出其中最大的数及其下标,下标存到指针b所指的变量里,函数返回最大值。 裁判测试程序样例: #include<stdio.h> #define N 10 int fun(int *a,int *b,int n); int main() { int a[N],i,max,p=0; for(i=0;i<N;i++) scanf("%d",&a[i]); max=fun(a,&p,N); printf("max=%d,position=%d\n",max,p); return 0; } /* 请在这里填写答案 */ 输入样例: 2 1 5 4 8 4 5 8 9 1 输出样例: max=9,position=8 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-03-21 12:37:42 浏览: 899
以下是该题目的解答代码:
```c
#include <stdio.h>
int fun(int *a, int *b, int n) {
int max = *a;
int pos = 0;
for (int i = 1; i < n; i++) {
if (*(a+i) > max) {
max = *(a+i);
pos = i;
}
}
*b = pos;
return max;
}
int main() {
int a[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
int max, pos;
max = fun(a, &pos, 10);
printf("max=%d,position=%d\n", max, pos);
return 0;
}
```
解释一下代码的思路:
首先定义了一个函数`fun`,它的功能是在指针`a`所指向的一维数组中找出其中最大的数及其下标,下标存到指针`b`所指的变量里,函数返回最大值。
在函数中,首先将第一个元素设为最大值,然后从第二个元素开始遍历一维数组,如果该元素比最大值大,就将该元素设为最大值,并更新最大值的位置。最后将最大值的位置存入指针`b`所指的变量中,并返回最大值。
在主函数中,先定义一个长度为10的一维数组`a`,通过循环输入数组中的元素。接着,调用`fun`函数,将数组`a`和变量`pos`的地址作为实参传递进去,同时还传递了数组的长度10。将`fun`的返回值赋给变量`max`,最后输出最大值和下标。
输入样例:
```
2 1 5 4 8 4 5 8 9 1
```
输出样例:
```
max=9,position=8
```
阅读全文
相关推荐












