3.人为乱序输入十个数(不可以附初始值),分别找出最大值和最小值并输出。(请使用一维数组的方式,请同时输出最大值和最小值的下标)c语言一维数组
时间: 2025-06-15 20:23:28 浏览: 11
在C语言中,我们可以创建一个动态的一维数组来存储这十个随机输入的数,并通过遍历数组来找到最大值和最小值以及它们的下标。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h> // 需要stdlib.h库用于动态内存分配
int main() {
int n = 10; // 数组大小
int* arr = NULL; // 初始化一维数组指针
int max_value, min_value;
int max_index = 0, min_index = 0;
// 动态分配内存
arr = (int*) malloc(n * sizeof(int));
if (arr == NULL) { // 检查内存是否成功分配
printf("Memory allocation failed.\n");
return 1;
}
// 用户输入10个数,注意这里没有初始化值,乱序输入
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
// 初次比较,将第一个元素作为当前最大值和最小值
if (i == 0 || arr[i] > max_value) {
max_value = arr[i];
max_index = i;
}
if (i == 0 || arr[i] < min_value) {
min_value = arr[i];
min_index = i;
}
}
// 输出结果
printf("最大值: %d, 下标: %d\n", max_value, max_index);
printf("最小值: %d, 下标: %d\n", min_value, min_index);
// 释放内存
free(arr);
return 0;
}
```
在这个程序中,我们首先动态分配了一个足够大的数组来存放十位数。然后用户逐个输入数字,每次输入后都会检查新数值是否比当前的最大值或最小值更大或更小,如果是,则更新相应值和下标。最后,我们会输出找到的最大值和最小值及其对应的下标。
阅读全文