用C语言指针的方式求出10个元素的数组中最大数和次最大数
时间: 2024-05-15 08:17:47 浏览: 92
您好!感谢您使用ChitGPT AI,针对您的问题,以下是答案:
要求出10个元素的数组中最大数和次最大数,可以采用以下C语言指针方式:
```c
#include <stdio.h>
void largestAndSecondLargest(int arr[], int n, int* largest, int* secondLargest) {
// 首先初始化 largest 和 secondLargest
*largest = arr[0];
*secondLargest = arr[1];
// 如果 largest < secondLargest,则交换它们的位置
if (*largest < *secondLargest) {
int temp = *largest;
*largest = *secondLargest;
*secondLargest = temp;
}
// 遍历数组,更新 largest 和 secondLargest 的值
for (int i = 2; i < n; i++) {
if (arr[i] > *largest) {
*secondLargest = *largest;
*largest = arr[i];
}
else if (arr[i] > *secondLargest && arr[i] != *largest) {
*secondLargest = arr[i];
}
}
}
int main() {
int arr[] = {3, 6, 1, 9, 4, 5, 8, 2, 7, 0};
int largest, secondLargest;
largestAndSecondLargest(arr, 10, &largest, &secondLargest);
printf("最大数为:%d,次最大数为:%d\n", largest, secondLargest);
return 0;
}
```
该程序定义了一个名为 largestAndSecondLargest 的函数,该函数接受一个整数数组、数组的长度以及两个指向整数的指针参数,用于存储最大值和次大值。函数首先初始化 largest 和 secondLargest 的值,然后遍历整个数组,更新 largest 和 secondLargest 的值。最后,main 函数调用该函数,并输出结果。
希望这个回答能帮到您,如果您还有其他问题,请随时问我!
阅读全文