3.人为乱序输入十个数(不可以附初始值),分别找出最大值和最小值并输出。(请使用一维数组的方式,请同时输出最大值和最小值的下标) c语言
时间: 2025-06-15 11:23:28 浏览: 8
在 C 语言中,你可以通过动态内存分配、一维数组和两趟遍历来实现这个功能。首先,我们需要创建一个动态的一维数组存储十个数,并允许用户逐个输入。然后我们会初始化两个变量 `max_value` 和 `min_value` 来保存当前的最大值和最小值,以及相应的索引 `max_index` 和 `min_index`。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr; // 动态数组指针
int i, num, max_value = INT_MIN, min_value = INT_MAX, max_index = -1, min_index = -1;
// 分配内存
arr = (int*)malloc(10 * sizeof(int));
if (arr == NULL) { // 检查内存分配是否成功
printf("Memory allocation failed.\n");
return 1;
}
// 输入十个数字
for (i = 0; i < 10; ++i) {
printf("Enter number %d: ", i + 1);
scanf("%d", &num);
arr[i] = num; // 存储到数组中
if (num > max_value) { // 如果新数值更大,更新最大值和其索引
max_value = num;
max_index = i;
}
if (num < min_value) { // 同理,如果新数值更小,更新最小值和其索引
min_value = num;
min_index = i;
}
}
// 输出结果
printf("Max value: %d, at index: %d\n", max_value, max_index);
printf("Min value: %d, at index: %d\n", min_value, min_index);
// 释放内存
free(arr);
return 0;
}
```
阅读全文