C++实验02(04)数组循环左移

题目描述
(要求通过下标和指针访问数组元素)从键盘输入n* n个整数,将它们存放在二维数组A中;然后将A中整数循环左移k次(1<k<n);最后输出循环左移后的A数组。
循环左移方法如下所示。在这个实例中k=3。 (本题中n为5)
如果循环左移前,A中存放的内容是:
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
则循环左移后,A中存放的内容变成:
14 15 21 22 23
24 25 31 32 33
34 35 41 42 43
44 45 51 52 53
54 55 11 12 13
输入描述
两批数据:第一批:左移的次数k
第二批:5 * 5个整数
输出描述
左移k位后的数组,按行输出,数据间用"\t"分隔
输入样例
3
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
输出样例
左移3位后的数组为:
14 15 21 22 23
24 25 31 32 33
34 35 41 42 43
44 45 51 52 53
54 55 11 12 13

#include <iostream>
using namespace std;
int main()
{
	int a[5][5],i,j,k,t,s;
	cin>>k;
	for(i=0;i<5;i++)
		for(j=0;j<5;j++)
		   cin>>*(*(a+i)+j);
	if(k>1&&k<5)
	{
		for(s=1;s<=k;s++)
		{
			t=a[0][0];
			for(i=0;i<5;i++)
				for(j=0;j<5;j++)
				{
					if(j!=4)
						*(*(a+i)+j)=*(*(a+i)+j+1);
					else
						*(*(a+i)+j)=*(*(a+i+1)+0);
				}
			a[4][4]=t;
		}
	}
	cout<<"左移"<<k<<"位后的数组为:"<<endl;
	for(i=0;i<5;i++)
		for(j=0;j<5;j++)
		{
			cout<<a[i][j]<<'\t';
			if(j==4)
				cout<<endl;
		}
		return 0;
}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bmNkotc2AECynaY6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值