请实现一个函数,返回整型数组中的次小数的值数原型: int GetMin2( const int ar [], int cnt) 用c语言shi
时间: 2024-10-08 22:21:55 浏览: 35
在C语言中,你可以创建一个名为GetMin2的函数,该函数接受一个整型数组ar和数组元素的计数cnt作为参数。这个函数的主要任务是遍历整个数组,找出所有第二小的元素并返回它们的数量。这里是一个简单的实现方法:
```c
#include <stdio.h>
#include <limits.h> // 使用INT_MIN来初始化临时变量
// 函数原型
int GetMin2(const int ar[], int cnt);
// 辅助函数,找到数组中的最小值
int find_min(const int arr[], int size) {
int min = INT_MAX; // 初始化为最大值
for (int i = 0; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
// 主函数
int GetMin2(const int ar[], int cnt) {
if (cnt <= 1) { // 如果数组元素少于2个,无法存在次小值
return 0;
}
int first_min = find_min(ar, cnt); // 找到最小值
int second_min_count = 0; // 计数器,记录次小值的数量
// 再次遍历数组,检查每个元素是否等于次小值
for (int i = 0; i < cnt; i++) {
if (ar[i] != first_min && ar[i] < first_min) {
second_min_count++;
}
}
return second_min_count;
}
int main() {
int arr[] = {1, 3, 2, 2, 4};
int cnt = sizeof(arr) / sizeof(arr[0]);
int result = GetMin2(arr, cnt);
printf("数组中次小数值的数量为:%d\n", result);
return 0;
}
```
在这个示例中,`GetMin2`函数首先检查数组元素数量,然后找到最小值。接着,它再次遍历数组,统计那些小于最小值并且不等于最小值的元素数量,即次小值的数量。
阅读全文