求若干组中俩个较大的数c语言
时间: 2024-11-15 13:29:28 浏览: 16
在C语言中,如果你需要找出一组数中的两个最大值,你可以采用动态数组的方式存储这些数值,并维护两个变量分别记录当前已知的最大值(max1)和第二大值(max2)。以下是简单的步骤:
1. 初始化max1和max2为数组的第一个元素。
2. 遍历数组,从第二个元素开始比较,如果遇到比max1更大的数,则更新max1;如果遇到比max2但小于max1的数,则更新max2。
3. 遍历结束后,max1和max2就分别是数组中的两个较大数。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
int find_two_largest(int arr[], int n) {
if (n < 2) {
printf("Invalid input! At least two elements are needed.\n");
return -1;
}
int max1 = arr[0], max2 = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max1) {
max2 = max1;
max1 = arr[i];
} else if (arr[i] > max2 && arr[i] != max1) {
max2 = arr[i];
}
}
return max1, max2;
}
int main() {
int numbers[] = {5, 8, 3, 9, 1, 7};
int n = sizeof(numbers)/sizeof(numbers[0]);
int max1, max2;
max1 = max2 = find_two_largest(numbers, n);
if (max1 != -1) {
printf("The two largest numbers are: %d and %d\n", max1, max2);
}
return 0;
}
```
在这个例子中,`find_two_largest`函数接受一个整型数组和其大小作为输入,返回两个最大的数。在主函数中,我们创建了一个数组并调用了这个函数。
阅读全文