有一道c++题编程题,这个怎么写?

 我来答
听不清啊
高粉答主

2019-09-17 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

比较简单的做法是,开辟另一个数组,用于存储循环后移的元素,把后面的数据前移后,再把移出的数据移回原数组。这种做法,是“以空间换时间”的做法,增加了空间的开销,时间复杂度为O(n)。
#include
using namespace std;
int main()
{ int m,n,i,j,t,a[100],b[100];
cout<<"一维数组元素个数:";
cin>>m;
cout<<"请输入"<<m<<"个数据:";
for(i=0; i<m; i++)
cin>>a[i];
cout<<"\n请输入要移动的次数:";
cin>>n;
for(i=0; i<m; i++)
b[i]=a[i];
for(j=0,i=n;i<m;)
a[j++]=a[i++];
for(i=0;j<m;)
a[j++]=b[i++];
cout<<"\n移动后的结果是:";
for(i=0;i<m;i++)
cout<<a[i]<<" ";
cout<<"\n";
return 0;
}

紫薇参星
科技发烧友

2019-09-16 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3517万
展开全部

按照题目要求编写的一维数组循环右移的C++程序如下

#include <iostream>

using namespace std;

int main()

{

 int i,j,temp,n,times;

 cout<<"一维数组元素个数:";

 cin>>n;

 cout<<"请输入"<<n<<"个数据:";

 int a[n];

 for(i=0;i<n;i++){

  cin>>a[i];

 }

 cout<<"请输入要移动的次数:";

 cin>>times;

 for(i=0;i<times;i++){

  temp=a[n-1];

  for(j=n-2;j>=0;j--){

   a[j+1]=a[j]; 

  }

  a[0]=temp;

 }

 cout<<"移动后的结果是:";

 for(i=0;i<n;i++){

  cout<<a[i]<<" ";

 }

 cout<<endl;

 return 0;


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2019-09-17 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6444万
展开全部
代码资料:
#include <iostream>
using namespace std;//
#define N 6
int main(int argc,char *argv[]){
int n,i,j,k,a[N];
cout << "Please enter n(int n>=0)...\n";
if(!(cin >> n) || n<0){
cout << "Input error, exit...\n";
return 0;
}
for(i=0;i<N;a[i++]=i+1);
for(i=0;i<n;i++){
for(k=a[j=N-1];j>0;a[j--]=a[j-1]);
a[0]=k;
}
for(i=0;i<N;cout << a[i++] << ' ');
cout << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式