C语言通过函数swap( ),实现从键盘输入10个整数,利用模块化的程序思想,用函数编程实现计算最大值和最小值,并互换它们所在数组中的位置。
时间: 2024-03-22 18:41:18 浏览: 95
好的,这是一个很好的编程练习题目。下面是我给出的代码实现。
```c
#include <stdio.h>
// 函数声明
void swap(int *a, int *b);
void max_min(int a[], int n, int *max, int *min);
int main() {
int a[10];
int i, max, min;
// 从键盘输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
// 计算最大值和最小值
max_min(a, 10, &max, &min);
// 输出最大值和最小值
printf("最大值是:%d,最小值是:%d\n", max, min);
// 互换位置
for (i = 0; i < 10; i++) {
if (a[i] == max) {
swap(&a[i], &a[0]);
}
if (a[i] == min) {
swap(&a[i], &a[9]);
}
}
// 输出交换后的数组
printf("交换后的数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
// 交换函数
void swap(int *a, int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
// 计算最大值和最小值函数
void max_min(int a[], int n, int *max, int *min) {
int i;
*max = *min = a[0];
for (i = 1; i < n; i++) {
if (a[i] > *max) {
*max = a[i];
}
if (a[i] < *min) {
*min = a[i];
}
}
}
```
代码注释:
1. `swap` 函数:用于交换数组中的两个元素,采用指针传递,传递地址而非值。
2. `max_min` 函数:用于计算数组中的最大值和最小值,采用指针传递,将结果返回给 `max` 和 `min` 变量。
3. `main` 函数:从键盘输入十个整数,计算最大值和最小值,然后将最大值和最小值在数组中的位置互换,最后输出交换后的数组。
阅读全文