笨方法 >_<
#include <iostream>
using namespace std;
int main()
{ int n,m,i,j;
int a[100];
cout<<"请输入要创建数组的长度(不能超过100):"<<endl;
cin>>n;
//为数组赋值
cout<<"请依次输入要存入数组中的元素:"<<endl;
for(i=0;i<n;i++)
{cin>>a[i];}
//输出当前数组
cout<<"当前数组为:"<<endl<<"[";
for(i=0;i<n;i++)
{if (i==n-1) cout<<a[i];
else cout<<a[i]<<',';}
cout<<']'<<endl;
//交换
cout<<"现将数组的前m个元素与后n-m个元素整体互换位置,请输入m:"<<endl;
cin>>m;
//创建数组b,长度为m
const int x=m;
int b[x];
//将数组a的前m个元素暂时存到数组b中
for(i=0;i<m;i++)
{b[i]=a[i];}
//将数组a的后n-m个元素挪到前面
for(i=0,j=0;i<n-m;i++,j++)
{a[i]=a[m+j];}
//将数组b中的元素提取出来,放到数组a的后m个位置
for(i=0,j=0;i<m;i++,j++)
{a[n-m+j]=b[i];}
//交换后输出数组
cout<<"当前数组为:"<<endl<<"[";
for(i=0;i<n;i++)
{if (i==n-1) cout<<a[i];
else cout<<a[i]<<',';}
cout<<']'<<endl;
}
老师做滴:
#include<iostream>
using namespace std;
void invert(int R[],int s,int t)
{ int k,w;
for(k=s;k<=(s+t)/2;k++)
{w=R[k];
R[k]=R[t-k+s];
R[t-k+s]=w;
}
}
int main()
{
int A[10],i,m;
cout<<"请输入要存入的10个元素:"<<endl;
for(i=0;i<10;i++)
cin>>A[i];
cout<<"请输入m的值:"<<endl;
cin>>m;
invert(A,0,9);
invert(A,0,9-m);
invert(A,10-m,9);
for(i=0;i<10;i++)
cout<<A[i]<<" ";
return 0;
}