求n个整数中的最大的两个值。要求定义一个函数LargestTow(),求数组a的最大的两个值,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下: void LargestTow(int a[],int n,int *pfirst,int *psecond) { /*数组a有n个元素,将数组中的最大值存入形参指针pfirst所指内存单元,将数组中第二大的值存入形参指针psecond所指内存单元。*/ }
时间: 2023-05-11 09:04:25 浏览: 123
好的,我可以回答这个问题。以下是函数LargestTow的完整代码:
void LargestTow(int a[], int n, int *pfirst, int *psecond) {
int max1 = a[0], max2 = a[1];
if (max2 > max1) {
int temp = max1;
max1 = max2;
max2 = temp;
}
for (int i = 2; i < n; i++) {
if (a[i] > max1) {
max2 = max1;
max1 = a[i];
} else if (a[i] > max2) {
max2 = a[i];
}
}
*pfirst = max1;
*psecond = max2;
}
这个函数的作用是在数组a中找到最大的两个值,并将它们存储在指针pfirst和psecond所指向的内存单元中。函数首先将数组中的前两个元素赋值给max1和max2,然后比较它们的大小,确保max1存储的是最大的值,max2存储的是第二大的值。接下来,函数遍历数组中的其它元素,如果当前元素比max1大,就将max2更新为max1,将max1更新为当前元素;如果当前元素比max2大,就将max2更新为当前元素。最后,函数将max1和max2分别存储在指针pfirst和psecond所指向的内存单元中。
阅读全文