问答题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分的程序。函数func(int A[NUM],int n)实现的功能是将数组的内容进行一次重新排序。排序的方法是:给定n,则下标为i的数字与下标为n-i的数字交换。从0开始,交换N/2次,则最后的内容为排序后的结果。 如果:A[8]={1,2,3,4,5,6,7,8},n=6,则结果:A[8]={7,6,5,4,3,2,1,8}。 注意:不能修改其他代码。#include<iostream.h>#define NUM 8void func(int A[NUM],int n){}int main(){ int A[NUM]={1,2,3,4,5,6,7,8}; func(A,6); for(int i=0;i<sizeof(A)/sizeof(int);i++) { cout<<A[i]<<' '; } cout<<endl; return 0;}
【正确答案】正确答案:for (int i=0 ; i<n/2;i++) { int temp=A[i];//交换 A[i]=A[n-i]; A[n-i]=temp; }
【答案解析】解析:(1)用循环来实现该过程,题目要求从0开始,交换N/2次,因此循环变量i的范围从0变化到N/2。 (2)下标为0的元素与下标为n的元素交换,下标为1的元素与下标为n.1的元素交换,依此类推,在循环体内,用一个临时变量记录第一个元素,然后将第二个元素赋值给第一个元素,临时变量值赋给第二个元素,如此完成两个元素的交换。