二级C选择题 求教大神具体运算过程及结果 主要是过程 怎么得出的结果 越详细越好谢谢

2025-03-10 18:03:39
推荐回答(1个)
回答1:

你好:我解释下fun函数主要完成以n/2为中心进行交换
void fun(int a[],int n) //fun入口需要传入两个实参:一个int类型的数组,一个是需要交换的个数
{
int i,t; // 定义临时变量
for(i=0;i
{
t=a[i]; //将a[i]放在临时变量t中
a[i]=a[n-1-i]; //以n/2为中心 后面的数与前面的数进行交换
a[n-1-i]=t; //将先前保存的值放到以n/2为中心 后面对应的位置去。
}

举个实例,当前的a是指向数组K的指针。当前需要交换的数总共是5个,即 1,2,3,4,5
这时候n/2=2,即a[2]=3(注意数组下标从0开始,为这5个数的中心),for执行完一次以后的结果为5,2,3,4,1(将5和1进行交换),第二次for执行后结果为5,4,3,2,1(将4和2进行交换)。