A-A+

以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)小找出最大最小数 将其中最小的

2022-08-12 19:28:12 问答库 阅读 197 次

问题详情

以下程序中函数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=O;m<n;m++) { if(x[m]>i) {i=x[m]; p0=m;} else if(x[m]<j) {j=x[m];p1=m;) } t=x[p0];x[p0]=x[n-1];x[n-1]=t; t=x[pl];x[p1]=【 】;【 】=t } main() { int a[10],u; for(u=0;u<10;u++) scamp("%d",&a[u]); f(a,10); for(u=0;u<10;u++)printf("%d",a[u]); ptintf("n"); }


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:x[O]x[O]
根据题意,f()函数要“将其中最小的数与第一个数对换,把最大的数与最后一个数对换”,而填空处的上一行语句正是使用交换算法,将下标为p0的元素与数组x的最后一个元素(n个元素的数组,其最后一个元素的下标为n-1)交换。所以不难得知,填空所在行的语句是要将下标为p1的元素与数组x的第1个元素交换。故两个空都应该填x[0]。

考点:个数,小数