要用函数写,有没有学长指导一下一把
在vc++2010里用c语言编写一个函数,在一维数组中找到最大值和最小值及其下标并且顺序输出数组,一维数组由用户输入

要用函数写,有没有学长指导一下一把
在vc++2010里用c语言编写一个函数,在一维数组中找到最大值和最小值及其下标并且顺序输出数组,一维数组由用户输入

测试运行没问题
#include <stdio.h>
void find_max_min(double* numbers, int length, double* max_value, int* max_index, double* min_value, int* min_index);
int main() {
double numbers[10];
int i;
// 提示用户输入浮点数
printf("请输入10个浮点数:\n");
for (i = 0; i < 10; i++) {
printf("请输入第%d个数:", i+1);
scanf("%lf", &numbers[i]);
}
double max_value, min_value;
int max_index, min_index;
// 查找最大值和最小值及其下标
find_max_min(numbers, 10, &max_value, &max_index, &min_value, &min_index);
// 输出结果
printf("排序后的数组为:");
for (i = 0; i < 10; i++) {
printf("%.3lf ", numbers[i]);
}
printf("\n最大值为:%.3lf,下标为:%d\n", max_value, max_index);
printf("最小值为:%.3lf,下标为:%d\n", min_value, min_index);
return 0;
}
void find_max_min(double* numbers, int length, double* max_value, int* max_index, double* min_value, int* min_index) {
int i;
*max_index = 0;
*min_index = 0;
*max_value = numbers[0];
*min_value = numbers[0];
for (i = 1; i < length; i++) {
if (numbers[i] > *max_value) {
*max_index = i;
*max_value = numbers[i];
}
if (numbers[i] < *min_value) {
*min_index = i;
*min_value = numbers[i];
}
}
}