第一一个一维整型数组,输入五个数,从小到大排序,输出次最大值,c语言
时间: 2024-12-12 16:31:48 浏览: 11
在C语言中,我们可以使用冒泡排序算法对一维整型数组进行排序,并找出其中的次大值。下面是一个简单的示例:
```c
#include <stdio.h>
// 定义函数用于查找次大值
int findSecondLargest(int arr[], int n) {
if (n < 2)
return -1; // 如果数组元素少于2个,没有次大值
int largest = arr[0]; // 初始假设第一个元素是最大的
int second_largest = arr[0]; // 初始假设第二个元素是次大的
for (int i = 1; i < n; i++) {
if (arr[i] > largest) {
second_largest = largest;
largest = arr[i];
} else if (arr[i] > second_largest && arr[i] != largest) { // 避免重复找到最大值
second_largest = arr[i];
}
}
return second_largest;
}
int main() {
int numbers[5]; // 初始化一个长度为5的一维数组
printf("请输入五个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &numbers[i]);
}
// 对数组进行排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
int second_max = findSecondLargest(numbers, 5);
if (second_max == -1)
printf("没有次大值,因为数组中有重复的最大值。\n");
else
printf("数组中的次大值是: %d\n", second_max);
return 0;
}
```
阅读全文