试编写算法,求一整数数组中的最大值和最小值并显示最大值和最小值及其序号(注:不是下标)。 函数原型:void MaxMin(int a[], int n)测试输入: 6 16 25 30 16 89 51 预期输出: 第5个数具有最大值89 第1个数具有最小值16
时间: 2024-09-25 11:15:38 浏览: 50
你可以编写如下的 C 程序来实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
void MaxMin(int a[], int n) {
int max_val = a[0], min_val = a[0], max_index = 0, min_index = 0;
for (int i = 1; i < n; i++) {
if (a[i] > max_val) {
max_val = a[i];
max_index = i + 1; // 为了匹配题目中的"序号"而非下标,加1
}
if (a[i] < min_val) {
min_val = a[i];
min_index = i + 1; // 同理加1
}
}
printf("第%d个数具有最大值%d\n", max_index, max_val);
printf("第%d个数具有最小值%d\n", min_index, min_val);
}
int main() {
int array[] = {6, 16, 25, 30, 16, 89, 51};
int n = sizeof(array) / sizeof(array[0]);
MaxMin(array, n);
return 0;
}
阅读全文