已按升序排好。现有一程序,第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] 为什么。怎么想的,不会,可以解释一下吗
调用函数实现数组的逆序排列;下面那个空应该是&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 个数按逆序重新排列