输入十个数输出其中的最大值和次大值及其位置(用C语言程序编写)
时间: 2024-10-06 19:02:43 浏览: 95
c语言程序找出其中的最大值和最小值问题
在C语言中,我们可以使用数组存储这十个数,并通过遍历数组找到最大值、次大值以及它们的位置。下面是一个简单的示例程序:
```c
#include <stdio.h>
void findMaxSecondMax(int arr[], int n, int *max, int *second_max, int *max_index, int *second_max_index) {
// 初始化最大值和次大值及位置为第一个元素
*max = arr[0];
*second_max = arr[0];
*max_index = 0;
*second_max_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > *max) {
*second_max = *max;
*max = arr[i];
*second_max_index = *max_index;
*max_index = i;
} else if (arr[i] > *second_max && arr[i] != *max) {
*second_max = arr[i];
*second_max_index = i;
}
}
}
int main() {
int numbers[10];
printf("Enter 10 numbers: ");
for (int i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
}
int max_num, second_max_num, max_index, second_max_index;
findMaxSecondMax(numbers, 10, &max_num, &second_max_num, &max_index, &second_max_index);
printf("The maximum value is %d at position %d.\n", max_num, max_index + 1);
printf("The second maximum value is %d at position %d.\n", second_max_num, second_max_index + 1);
return 0;
}
```
这个程序首先定义了一个`findMaxSecondMax`函数,用于查找并返回最大值、次大值及其索引。然后在主函数中,用户输入十个数字,调用这个函数并打印结果。
阅读全文