#include <stdio.h> #define n=10; int FindMax(int num[], int n, int *pMaxPos); main() { int num[n], maxValue, maxPos, minValue, minPos, i; printf("Input %d numbers:\n",n); for (i=0; i<n; i++) { scanf("%d", &num[i]); } maxValue = FindMax(num, n, &maxPos); printf("Max=%d, Position=%d\n", maxValue, maxPos); } int FindMax(int num[], int n, int *pMaxPos) { int i, max = num[0]; for (i=1; i<n; i++) { if (num[i] > max) { max = num[i]; *pMaxPos = i; } } return max; }
时间: 2024-01-16 11:02:29 浏览: 68
这段代码定义了一个 `FindMax` 函数,用于找到给定数组中的最大值及其位置,并在 `main` 函数中进行了调用并输出了结果。
代码中使用了指针 `pMaxPos` 来记录最大值的位置,函数的返回值为最大值。
该代码存在一个问题,就是在 `#define` 中定义常量时,不应该在等号前加上 `n=`,应该写成 `#define n 10`,否则会导致编译错误。
下面是经过修改后的代码:
```c
#include <stdio.h>
#define n 10
int FindMax(int num[], int n, int *pMaxPos);
int main() {
int num[n], maxValue, maxPos, i;
printf("Input %d numbers:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
maxValue = FindMax(num, n, &maxPos);
printf("Max=%d, Position=%d\n", maxValue, maxPos);
return 0;
}
int FindMax(int num[], int n, int *pMaxPos) {
int i, max = num[0];
for (i = 1; i < n; i++) {
if (num[i] > max) {
max = num[i];
*pMaxPos = i;
}
}
return max;
}
```
输入 10 个数字后,程序会输出最大值及其位置。
阅读全文