(C++)有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

(C++)有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数,第1张

(C++)有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 (C++)有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
#include
using namespace std;

int main() {
	void move(int*, int, int);
	int number[20], m, n, i;
	cout << "how many number?" << endl;
	cin >> n;
	cout << "input " << n << "nubers:" << endl;
	for ( i = 0; i < n; i++)
	{
		cin >> number[i];
	}
	cout << "how many places do you want move?";
	cin >> m;
	move(number, n, m);
	cout << "now,they are :" << endl;
	for ( i = 0; i < n; i++)
	{
		cout << number[i] << " ";
	}
	cout << endl;
	return 0;
}

void move(int *array,int n,int m) {
	int* p, array_end;
	//将数组最后一位的值赋给array_end
	array_end = *(array + n - 1);
	for ( p = array+n-1; p > array; p--)
	{
		//将数组的n个元素逐个循环往后移一位,从最后一位开始
		*p = *(p - 1);
	}
	//将原数组末尾的元素赋给新的数组首元素位置
	*array = array_end;
	//总共移动m次,每移动一次m减1,以此完成n个元素向后移动m位
	m--;
	if (m > 0) move(array, n, m);
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5670456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存