findmax(int*a,int n) int*p,*a; for(p=a,s=a,p-a<n;p) if(*p<*s)s=p; return(*s); Main() int x[5]=12,21,13,6,18; Printf(“%d\n”,findmax(x,5));
时间: 2024-10-07 20:00:50 浏览: 26
radix-sort-java:基数对Java中的int数组进行排序
`findmax(int*a, int n)` 函数是一个C语言函数,它的目的是在给定的整数数组`x`(由`int x[5]`定义,包含5个元素:12、21、13、6和18)中找到最大的整数值。函数接受两个参数:一个指向整数数组首元素的指针`a`和数组的长度`n`。
函数内部,首先定义了一个临时指针`s`并将其初始值设为数组的第一个元素`a`,然后通过`for`循环遍历数组,从第一个元素开始比较。如果当前元素`*p`大于已知的最大值`*s`,则更新`*s`为`*p`。当遍历完整个数组,`*s`就保存了最大值。最后返回这个最大值。
在`main()`函数中,调用`findmax(x, 5)`,并将结果打印出来,输出应该是数组中的最大值。在这个例子中,输出应该是21,因为21是数组中最大的数。
下面是整个程序的主要部分:
```c
#include <stdio.h>
int findmax(int*a, int n) {
int*s = a;
for (int p = s; p - a < n; p++) {
if (*p > *s) {
s = p;
}
}
return (*s);
}
int main() {
int x[] = {12, 21, 13, 6, 18};
printf("%d\n", findmax(x, 5));
return 0;
}
```
阅读全文