int a[6]=(7.9.28.5.1] 求最大值,最小值,求前两大的值 C语言
时间: 2024-10-08 12:07:38 浏览: 27
在C语言中,处理数组`a`并找到最大值、最小值以及前两个最大的值需要首先将浮点数转换为整型,因为原始数组元素是整数类型`int`。然后,可以分别遍历数组寻找最大和最小值,并记录下第二大的值。以下是实现的一个例子:
```c
#include <stdio.h>
// 函数声明
int findMax(int arr[], int n);
int findMin(int arr[], int n);
void findTwoLargest(int arr[], int n);
int main() {
int a[] = {7, 9, 28, 5, 1};
int n = sizeof(a) / sizeof(a[0]);
// 转换浮点数到整型
for (int i = 0; i < n; ++i)
a[i] = (int)a[i];
int max1 = findMax(a, n); // 最大值
int min1 = findMin(a, n); // 最小值
findTwoLargest(a, n); // 找到前两个最大值
printf("最大值: %d\n", max1);
printf("最小值: %d\n", min1);
return 0;
}
// 寻找最大值
int findMax(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; ++i) {
if (arr[i] > max)
max = arr[i];
}
return max;
}
// 寻找最小值
int findMin(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; ++i) {
if (arr[i] < min)
min = arr[i];
}
return min;
}
// 寻找前两个最大值
void findTwoLargest(int arr[], int n) {
int max1 = findMax(arr, n);
int secondMax = INT_MIN; // 初始化为负无穷大
for (int i = 0; i < n; ++i) {
if (arr[i] != max1 && arr[i] > secondMax)
secondMax = arr[i];
}
printf("前两个最大值: 第一大值 %d, 第二大值 %d\n", max1, secondMax);
}
```
阅读全文