求n个整数中的最大的两个值。要求定义一个函数LargestTow(),求数组a的最大的两个值,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下: void LargestTow(int a[],int n,int *pfirst,int *psecon
时间: 2024-03-10 08:50:33 浏览: 96
d);
好的,这是您的问题:求n个整数中的最大的两个值。要求定义一个函数LargestTow(),求数组a的最大的两个值,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下: void LargestTow(int a[],int n,int *pfirst,int *psecond);
以下是解答:
```c
void LargestTow(int a[], int n, int *pfirst, int *psecond) {
int max1 = INT_MIN, max2 = INT_MIN;
for (int i = 0; i < n; i++) {
if (a[i] > max1) {
max2 = max1;
max1 = a[i];
} else if (a[i] > max2) {
max2 = a[i];
}
}
*pfirst = max1;
*psecond = max2;
}
```
解释:
我们定义两个变量max1和max2分别记录最大值和次大值,初始值为INT_MIN,即int类型的最小值。然后遍历数组a,如果当前元素大于max1,则将max1更新为该元素,同时将max2更新为原来的max1;否则,如果当前元素大于max2,则将max2更新为该元素。最后,将max1和max2分别赋值给形参指针所指向的存储单元即可。
阅读全文
相关推荐








