1. 程式人生 > >指標遞迴調呼叫實現迴圈移位

指標遞迴調呼叫實現迴圈移位

指標、遞迴實現迴圈以為,以後的迴圈卷積c程式碼的實現,或許可以用得上,關鍵的是現在用C語言實現卷積都實現不了。愁啊,四天後必須解決這個問題。

#include<iostream>
using namespace std;
int main()
{
	void move(int*,int,int);
	int number[20],n,m,i;
	cout<<"how many numbers?";
	cin>>n;
	cout<<"input"<<n<<"numbers:"<<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+n-1);//array_end指向陣列的最後一位即移出去的那一位
 	for(p=array+n-1;p>array;p--)
 	{
 		*p=*(p-1);//倒序指標移動錯位,方便錯出第一位,為後續步驟做準備
	 }
	 *array=array_end;//將移出去的那一位放在陣列的第一位即上步通過指標移動空出的第一位
	 m--;
	 if(m>0)
	 move(array,n,m);
 }