C语言,有一数列,包含10个数,

已按升序排好。现有一程序,第4个数开始的5个数按逆序重新排列,并输出新的完整数列(例:原数列:2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)。

void sort(int a[],int n)

{ int i,j,t;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(a[i]<a[j]){;;;}

}

main()

{int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

scanf(“input ”)

sort(, 5);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("\n");

}

参考答案: t=a[i]
a[i]=a[j]
a[j]=t
&a[3]

为什么。怎么想的,不会,可以解释一下吗
最新回答
中国移不动

2025-03-26 00:02:17

调用函数实现数组的逆序排列;
下面那个空应该是&aa[3]
&aa[3]代表数组中aa[3]的地址,也就是说带入调用函数的数组从aa[3]]开始
追问
为什么是[3]呢,是因为从第四个数开始的吧,
sort(, 5);那为什么是5,不是8呢,而且5是啥意思啊
追答
主函数从aa[0]开始的;aa[3]就是第4个数;
5的意思是从aa[3]开始接着后面的5个数,即aa[3],aa[4];aa[5];aa[6];aa[7]
满足从第 4 个数开始的 5 个数按逆序重新排列