编写程序,按照指定长度生成动态数组,键盘输入数组元素,然后逆置该数组元素。逆置即,如果数组a[3]的值为{1, 3, 5},逆置后的值为{5, 3, 1}。要求数组输出“,”分隔。
函数接口定义:
void printarray(int *p,int n); void adverse(int *p,int n);
完成接口对应的两个函数定义。
裁判测试程序样例:
#include#include using namespace std; void printarray(int *p,int n); void adverse(int *p,int n); int main() { int *p,n,i; cout<<"请输入数组长度:n"; cin>>n; p=new int [n]; //建立动态数组 cout<<"请输入"< > *(p+i); cout<<"动态数组:"; printarray(p,n); // 输出动态数组 adverse(p,n); // 对数组逆置 cout<<"逆置数组:"; printarray(p,n); // 输出逆置数组 delete p; }
输入样例:
输入两行,分别为数组长度和数组元素:
7
1 2 3 4 5 5 6
输出样例:
输出两行输入的数组元素和逆置数组(数据之间逗号分隔):
动态数组:1,2,3,4,5,5,6
逆置数组:6,5,5,4,3,2,1
c++解析:
using namespace std; #include#include #include using namespace std; void printarray(int* p, int n) { int i = 0; for (; i < n - 1; i++) { cout << *(p + i) << ","; } cout << *(p + i) << endl; } void adverse(int* p, int n) { vector t(n, 0); for (int i = 0,j = n - 1; i < n; i++,j--) { t[j] = *(p + i); } for (int i = 0; i < n; i++) { *(p + i) = t[i]; } }



