C语言输出三个数中的次大数
时间: 2024-09-20 13:05:39 浏览: 58
在C语言中,要找出三个输入数中的次大数,可以采用一种简单的方法,即先对这三个数进行排序,然后取中间的那个数作为次大数。以下是实现这一功能的一个示例:
```c
#include <stdio.h>
// 定义比较函数用于排序
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int findSecondLargest(int num1, int num2, int num3) {
// 使用冒泡排序算法
int arr[] = {num1, num2, num3};
int n = sizeof(arr)/sizeof(arr[0]);
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (compare(arr[j], arr[j + 1]) > 0) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 返回第二大的数
return arr[1];
}
int main() {
int num1, num2, num3;
printf("请输入三个整数:\n");
scanf("%d %d %d", &num1, &num2, &num3);
int secondLargest = findSecondLargest(num1, num2, num3);
printf("三个数中的次大数是:%d\n", secondLargest);
return 0;
}
```
在这个程序中,我们首先定义了一个`compare`函数来进行数值间的比较,接着在`findSecondLargest`函数中通过冒泡排序找到次大值。最后,在`main`函数中获取用户输入并调用这个函数。
阅读全文