1.编写一个函数,求10个数字的最大值,最小值,平均值,以及最大值所在的下标和最小值所
时间: 2023-09-13 07:09:41 浏览: 141
在的下标。
可以使用Python的内置函数max()和min()来求最大值和最小值,使用sum()函数来求和,然后除以总数得到平均值。最大值和最小值所在的下标可以使用index()函数来获取。
下面是一个示例实现:
```python
def calculate(numbers):
max_num = max(numbers)
min_num = min(numbers)
avg = sum(numbers) / len(numbers)
max_index = numbers.index(max_num)
min_index = numbers.index(min_num)
return max_num, min_num, avg, max_index, min_index
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = calculate(numbers)
print("最大值:", result[0])
print("最小值:", result[1])
print("平均值:", result[2])
print("最大值所在下标:", result[3])
print("最小值所在下标:", result[4])
```
输出结果为:
```
最大值: 10
最小值: 1
平均值: 5.5
最大值所在下标: 9
最小值所在下标: 0
```
相关问题
C语言:编写一个函数,求10个数字的最大值,最小值,平均值,以及最大值所在的下标和最小值所在的下标
以下是一个求解10个数字的最大值、最小值、平均值,以及最大值所在下标和最小值所在下标的C语言函数:
```c
#include <stdio.h>
void get_max_min_avg(int arr[], int size, int *max, int *min, float *avg, int *max_index, int *min_index) {
// 初始化最大值、最小值、平均值、最大值下标和最小值下标
*max = arr[0];
*min = arr[0];
*avg = 0;
*max_index = 0;
*min_index = 0;
// 循环遍历数组
for (int i = 0; i < size; i++) {
// 更新最大值和最大值下标
if (arr[i] > *max) {
*max = arr[i];
*max_index = i;
}
// 更新最小值和最小值下标
if (arr[i] < *min) {
*min = arr[i];
*min_index = i;
}
// 累加求和
*avg += arr[i];
}
// 求平均值
*avg /= size;
}
int main() {
int arr[] = {5, 9, 3, 7, 11, 2, 8, 4, 6, 10};
int max, min, max_index, min_index;
float avg;
get_max_min_avg(arr, 10, &max, &min, &avg, &max_index, &min_index);
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
printf("平均值为:%.2f\n", avg);
printf("最大值下标为:%d\n", max_index);
printf("最小值下标为:%d\n", min_index);
return 0;
}
```
输出结果为:
```
最大值为:11
最小值为:2
平均值为:6.50
最大值下标为:4
最小值下标为:5
```
用c语言输入n个(1<n<=10)正整数并保存到一个数组中,求出最大值、最小值、平均值(保留2位小数),以及最大值、最小值在数组中的下标分别是多少。
在C语言中,你可以按照以下步骤来实现这个功能:
首先,你需要定义一个足够大的数组来存储输入的正整数,并通过`scanf`函数从用户那里获取输入。然后,遍历数组来找到最大值、最小值,同时计算总和,以便后续求平均值。最后,记录最大值和最小值的位置。
以下是一个简单的示例程序:
```c
#include <stdio.h>
#define MAX_NUMS 10
int main() {
int nums[MAX_NUMS];
int n, i, max_index = 0, min_index = 0;
float sum = 0.0, average;
printf("请输入数字的个数 (1-%d): ", MAX_NUMS);
scanf("%d", &n);
if (n > MAX_NUMS || n <= 0) {
printf("输入错误! 数字个数应介于1到%d之间.\n", MAX_NUMS);
return 1;
}
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
if (i == 0 || nums[i] > nums[max_index]) {
max_index = i;
}
if (i == 0 || nums[i] < nums[min_index]) {
min_index = i;
}
sum += nums[i];
}
average = (float)sum / n;
printf("最大值 %d 在位置 %d, 最小值 %d 在位置 %d.\n", nums[max_index], max_index, nums[min_index], min_index);
printf("平均值 %.2f.\n", average);
return 0;
}
```
在这个程序中,我们使用了`if`条件检查来更新最大值和最小值的索引,同时也计算了所有数字的和。注意,由于浮点数除法可能会有精度损失,所以我们将结果强制转换为浮点型并保留两位小数。如果用户输入的数据不符合范围,我们会给出相应的提示。
阅读全文