这个代码怎么理解啊,回答一下吧😄

怎么理解
#include<stdio.h>
void fun(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{ t=a[i]; a[i]=a[i=n-1]; a[i=n-1]=t;}
}
main()
{int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++) printf("%d",k[i]);
printf("\n");
}

就是把数组元素顺序颠倒

就是把数组元素顺序颠倒
{ t=a[i]; a[i]=a[i=n-1]; a[i=n-1]=t;}
这行代码有错误,应该是:
{ t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;}
从0循环到数组长度的一半
第一次循环把数组第一个元素a[0]与倒数第一个元素a[n-1-0] 交换,
第二次循环把数组第二个元素a[1]与倒数第二个元素a[n-1-2] 交换,
...
一个到第5次循环把数组第5个元素a[4]与倒数第5个元素a[n-1-4] 交换,
整个数组元素顺序就颠倒了

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

定义了1-10的数组
对数组中的数据进行交换
k[0] 与k[4]交换
k[1] 与k[3]交换
由于n/2 是5/2 是整型 除法 所以 结果是2
所以 i<2;所以只执行0,1的部分。
最后打印2-7数组下标的数据

fun的功能是把指定长度的数组倒置

实现数组的逆序输出
比如 a[2] = {1,2};
如果正向输出,输出数组元素 为 1 2
逆序输出后 变成了{2,1};
输出就变为了 2 1
望采纳!!

你的代码贴的有问题
t=a[i]; a[i]=a[i=n-1]; a[i=n-1]=t
怎么数组里写的是i=n-1呢