求一组整数的最大值和最小值。要求:\n\n编写函数void input(int *pa)实现一组整数的输入;\n\n编写函数void add(int *pa)实现求一组整数的最大值和最小值。
时间: 2023-05-04 10:01:06 浏览: 45
题目要求编写两个函数,一个函数用来输入一组整数,另一个函数用来求这组整数中的最大值和最小值。
可以这样写:
```python
# 输入函数
def input(pa):
for i in range(len(pa)):
pa[i] = int(input("请输入第{}个整数:".format(i+1)))
# 求最大最小值函数
def add(pa):
max_value = pa[0] # 先假设第一个就是最大值
min_value = pa[0] # 先假设第一个就是最小值
for i in pa:
if i > max_value:
max_value = i
if i < min_value:
min_value = i
print("最大值为:{},最小值为:{}".format(max_value, min_value))
# 主函数
if __name__ == '__main__':
n = int(input("请输入整数个数:"))
a = [0] * n
input(a)
add(a)
```
相关问题
从键盘输入n个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。(提示:记住下标再互换位置。) 要求按如下函数原型编写程序 void MaxMinExchang(int a[], int n); **输入提示信息要求: "Input n(n<=10):\n" "Input %d numbers:\n" **要求输入格式为:"%d" **输出提示信息:"Exchange results:" **要求输出格式为:"%5d" 输出数组中所有数据后换行
好的,以下是符合要求的代码:
```c
#include <stdio.h>
#define MAX_NUM 10
void MaxMinExchange(int a[], int n);
int main()
{
int a[MAX_NUM], n, i;
// 输入n和数组元素
printf("Input n(n<=10):\n");
scanf("%d", &n);
printf("Input %d numbers:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 调用函数MaxMinExchange计算最大值和最小值,并互换它们所在数组中的位置
MaxMinExchange(a, n);
// 输出结果
printf("Exchange results:");
for (i = 0; i < n; i++) {
printf("%5d", a[i]);
}
printf("\n");
return 0;
}
void MaxMinExchange(int a[], int n)
{
int i, max = 0, min = 0, temp;
// 计算最大值和最小值
for (i = 0; i < n; i++) {
if (a[i] > a[max]) {
max = i;
}
if (a[i] < a[min]) {
min = i;
}
}
// 互换最大值和最小值所在数组中的位置
temp = a[max];
a[max] = a[min];
a[min] = temp;
}
```
此代码中,主函数先输入数组元素,然后调用函数 `MaxMinExchange` 计算最大值和最小值,并互换它们所在数组中的位置。函数 `MaxMinExchange` 中,先遍历数组计算出最大值和最小值的下标,然后互换它们所在数组中的位置。最后,主函数输出互换后的数组元素。
1、从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。 用一个函数实现数据输入的功能,其首部为: int input(int s[]) input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。 用一个函数实现求最大值、最小值和平均值的功能,首部为: void statistics(int n, int s[], int *max, int *min, float *avg) 1 2 3 4 5 0 Max=5 Min=1 Avg=3.000
以下是代码实现:
```c
#include <stdio.h>
int input(int s[]) {
int n = 0;
do {
scanf("%d", &s[n]);
n++;
} while (s[n-1] != 0);
return n-1;
}
void statistics(int n, int s[], int *max, int *min, float *avg) {
*max = s[0];
*min = s[0];
int sum = 0;
for (int i=0; i<n; i++) {
if (s[i] > *max) {
*max = s[i];
}
if (s[i] < *min) {
*min = s[i];
}
sum += s[i];
}
*avg = (float)sum / n;
}
int main() {
int s[100];
int n = input(s);
int max, min;
float avg;
statistics(n, s, &max, &min, &avg);
printf("Max=%d Min=%d Avg=%.3f", max, min, avg);
return 0;
}
```
输入数据后,调用 input 函数读取数据并返回数据个数 n。然后调用 statistics 函数计算最大值、最小值和平均值,并将结果存储在传递进函数的指针变量中。最后,输出最大值、最小值和平均值。