、十个数字外部输入到一维数组中,并输出一维数组 中的最大值和最小值、数组中的数按“从大到小”之 进行排列用c语言编写
时间: 2024-10-17 19:14:13 浏览: 29
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 定义一个动态的一维数组并获取用户输入的十个数字。
2. 计算并存储最大值和最小值。
3. 对数组进行排序,从大到小。
4. 输出结果。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 功能:计算数组的最大值和最小值
void findMinMax(int arr[], int size, int* min, int* max) {
*min = arr[0];
*max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > *max)
*max = arr[i];
else if (arr[i] < *min)
*min = arr[i];
}
}
// 冒泡排序函数,从大到小
void bubbleSortDesc(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int size, num;
printf("请输入数组长度(10以内): ");
scanf("%d", &size);
// 确保大小不超过10
if (size > 10) {
printf("输入错误,数组长度不能超过10。\n");
return 0;
}
int* arr = malloc(size * sizeof(int));
if (!arr) {
printf("内存分配失败。\n");
return 0;
}
printf("请输入10个数字: ");
for (int i = 0; i < size; i++) {
scanf("%d", &num);
arr[i] = num;
}
int min, max;
findMinMax(arr, size, &min, &max);
printf("最大值: %d\n", max);
printf("最小值: %d\n", min);
bubbleSortDesc(arr, size); // 排序数组
printf("数组从大到小排序: ");
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
free(arr);
return 0;
}
```
阅读全文