求一组整数的最大值和最小值。要求:\n\n编写函数void input(int *pa)实现一组整数的输入;\n\n编写函数void add(int *pa)实现求一组整数的最大值和最小值。
时间: 2023-05-04 07:01:06 浏览: 137
题目要求编写两个函数,一个函数用来输入一组整数,另一个函数用来求这组整数中的最大值和最小值。
可以这样写:
```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` 中,先遍历数组计算出最大值和最小值的下标,然后互换它们所在数组中的位置。最后,主函数输出互换后的数组元素。
从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。 要求按如下函数原型编写程序 void ReadData(int a[], int n); void PrintData(int a[], int n); void MaxMinExchang(int a[], int n); **输入提示信息要求: "Input n(n<=10):\n" "Input %d numbers:\n" **要求输入格式为:"%d" **输出提示信息:"Exchange results:" **要求输出格式为:"%5d" 输出数组中所有数据后换行 注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。
好的,下面是代码实现:
```
#include <stdio.h>
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void MaxMinExchang(int a[], int n);
int main() {
int a[10];
int n = 10;
printf("Input n(n<=10):\n");
scanf("%d", &n);
printf("Input %d numbers:\n", n);
ReadData(a, n);
MaxMinExchang(a, n);
printf("Exchange results:");
PrintData(a, n);
return 0;
}
void ReadData(int a[], int n) {
int i;
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
}
void PrintData(int a[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%5d", a[i]);
}
printf("\n");
}
void MaxMinExchang(int a[], int n) {
int i, j, max, min, max_pos, min_pos;
max = min = a[0];
max_pos = min_pos = 0;
for (i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
max_pos = i;
}
if (a[i] < min) {
min = a[i];
min_pos = i;
}
}
// 互换 max 和 min
j = a[max_pos];
a[max_pos] = a[min_pos];
a[min_pos] = j;
}
```
这个程序实现了对输入的10个整数进行读取,并计算其最大值和最小值,然后将它们所在数组中的位置进行互换,并输出交换后的结果。
阅读全文