c语言利用例题9.6程序中的函数Swap(),从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。
时间: 2024-05-07 10:21:55 浏览: 338
以下是利用例题9.6程序中的函数Swap(),从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置的C语言代码:
```c
#include <stdio.h>
void Swap(int *a, int *b); // 交换a和b的值
void FindMaxMin(int arr[], int len, int *max, int *min); // 寻找数组中最大值和最小值
int main()
{
int arr[10];
int i, max, min;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
FindMaxMin(arr, 10, &max, &min);
printf("原数组为:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
printf("最大值为:%d,最小值为:%d\n", max, min);
// 交换最大值和最小值所在的位置
for (i = 0; i < 10; i++) {
if (arr[i] == max) {
Swap(&arr[i], &arr[0]);
}
if (arr[i] == min) {
Swap(&arr[i], &arr[9]);
}
}
printf("交换后的数组为:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void Swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void FindMaxMin(int arr[], int len, int *max, int *min)
{
int i;
*max = *min = arr[0];
for (i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
}
}
```
运行结果如下所示:
```
请输入10个整数:
1 2 3 4 5 6 7 8 9 10
原数组为:1 2 3 4 5 6 7 8 9 10
最大值为:10,最小值为:1
交换后的数组为:10 2 3 4 5 6 7 8 9 1
```
阅读全文