普通编程题(20分) 2 1.(10分)要求,从键盘输入10个不同的整数存入一个数组中,用函数编程将其中的最大数与最小数位置互 换,分别输出互换之前最大值和最小值及其在数组中的位置,以及互换后的数组 输入提示信息,“Irput10 nunbers: 输入格式,“%d” 最大值输出提示信息:“Hax element position:%d,Hax elenent:dn 最小值输出提示信息,in elenent position:sd,Min element:sdn” 数组输出提示信息:“Exchange results: 数组输出格式:“%4d 程序运行结果示例, Input 10 numbers:5 1 64 36 10479 lHax element position:6,Max element:10/ Min element position:1,Min element:1/ Exchange results:5 10 64 3 6 14 79/用c语言写
时间: 2024-03-01 16:53:11 浏览: 112
下面是代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void findMaxMin(int arr[], int len, int *max, int *min, int *maxPos, int *minPos) {
*max = *min = arr[0];
*maxPos = *minPos = 0;
for (int i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i];
*maxPos = i;
}
if (arr[i] < *min) {
*min = arr[i];
*minPos = i;
}
}
}
int main() {
int arr[10];
printf("Input 10 numbers:");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
int max, min, maxPos, minPos;
findMaxMin(arr, 10, &max, &min, &maxPos, &minPos);
printf("Max element position: %d, Max element: %d\n", maxPos, max);
printf("Min element position: %d, Min element: %d\n", minPos, min);
swap(&arr[maxPos], &arr[minPos]);
printf("Exchange results:");
for (int i = 0; i < 10; i++) {
printf("%4d", arr[i]);
}
printf("\n");
return 0;
}
```
代码中用了两个函数,一个是 `swap` 函数,用于交换数组中最大数和最小数的位置;另一个是 `findMaxMin` 函数,用于查找数组中的最大数和最小数及其位置。在 `main` 函数中,首先输入 10 个整数到数组中,然后调用 `findMaxMin` 函数查找最大值和最小值及其位置,输出结果。接着调用 `swap` 函数进行位置交换,并输出互换后的数组。
阅读全文