普通编程题(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 14:52:52 浏览: 64
好的,以下是用C语言实现该程序的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void findMaxMin(int arr[], int n, int *max, int *min, int *maxPos, int *minPos) {
*max = *min = arr[0];
*maxPos = *minPos = 0;
for(int i = 1; i < n; i++) {
if(arr[i] > *max) {
*max = arr[i];
*maxPos = i;
}
if(arr[i] < *min) {
*min = arr[i];
*minPos = i;
}
}
}
void printArray(int arr[], int n) {
for(int i = 0; i < n; i++) {
printf("%4d", arr[i]);
}
printf("\n");
}
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: ");
printArray(arr, 10);
return 0;
}
```
该程序通过函数 `findMaxMin()` 查找数组中的最大值和最小值及其位置,通过函数 `swap()` 交换最大值和最小值的位置,然后通过函数 `printArray()` 输出数组。程序通过 `scanf()` 函数从键盘输入 10 个整数,然后将它们存储在数组中。希望这可以帮到您!
阅读全文