问题 填空题

以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大数和最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
void f(int x[], int n)
int p0, p1, i, j, t, m;
i=j=x[0]; p0=p1=0;
for(m=0; m<n; m++)
if(x[m]>i)i=x[m]; p0=m;
elseif(x[m]<j)j=x[m]; p1=m;

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1]; x[p1]=x[0]; ______=t;

main()
int a[10], u;
for(u=0; u<10; u++)scanf("%d", &a[u]);
f(a, 10);
for(u=0; u<10; u++)printf("%d", a[u]);
printf("\n");

答案

参考答案:x[0]

解析: 函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。

判断题
多项选择题