C語言:數組數據移動

設一個數組中有n個數,將前面各個數順序向後移動m個位置,移出的數再從頭開始移入;

編碼如下:

/*將數組中的數向後移動n位,移出的部分再移入頭部*/
void chapter1::moveArray(int a[], int alength, int moveLength)
{
	for (int i =0;i<moveLength;i++)
	{
		int lastitem = a[alength-1];
		for (int j = alength -1;j>0;j--)
		{
			a[j] = a[j - 1];
		}
		a[0] = lastitem;
	}
}

/*有n個整數, 使前面各數順序向後移m個位置, 移出的數再從開頭移入。 編寫一個函數實現以上功能, 在主函數中輸入n個整數並輸出調整後的n個數*/
void chapter1::moveN()
{
	printf_s("移動數測試開始\r\n");
	printf_s("輸入數組大小n");

	int n;
	scanf_s("%d",&n);

	int *arraydata = (int*)calloc(n, sizeof(int));
	for(int i=0;i<n;i++)
	{
		printf_s("請輸入第%d個數\r\n",i);
		scanf_s("%d", &arraydata[i]);
	}
	printf_s("請輸入移動位數\r\n");
	int m;
	scanf_s("%d", &m);

	moveArray(arraydata, n, m);
	for (size_t i = 0; i < n; i++)
	{
		printf_s("第%d個數:%d\r\n",i,arraydata[i]);
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章