C语言对整形数组排序并找出大于0最小值
时间: 2024-04-07 11:30:14 浏览: 11
可以使用冒泡排序算法对整型数组进行排序,然后找出大于0的最小值。以下是示例代码:
```c
#include <stdio.h>
void bubbleSort(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int findSmallestPositive(int arr[], int size) {
for (int i = 0; i < size; i++) {
if (arr[i] > 0) {
return arr[i];
}
}
return -1; // 如果数组中没有大于0的元素,则返回-1表示未找到
}
int main() {
int arr[] = {5, -3, 2, 0, 7, -1, 9};
int size = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, size);
int smallestPositive = findSmallestPositive(arr, size);
if (smallestPositive > 0) {
printf("最小的大于0的值为: %d\n", smallestPositive);
} else {
printf("数组中没有大于0的元素\n");
}
return 0;
}
```
这段代码首先使用冒泡排序算法对数组进行排序,然后通过 `findSmallestPositive` 函数找出大于0的最小值。在 `main` 函数中,我们给定了一个示例数组并输出结果。