题:设将n个整数存放在一个数组R中,设计算法实现R中的序列循环左移P个位置
思路:1、将R中前P个元素逆置
2、将剩下的元素逆置
3、R中所有元素进行一次逆置
出现一处错误,#define N 10的时候,后面加了分号,这不应该的……
// 整数数组信息输出
void PrintNNum(int nNum[],int n)
{
cout<<"整数数组信息为:"<<endl;
for (int i= 0; i<n; i++)
{
cout<<nNum[i]<<endl;
}
cout<<endl;
cout<<"输出结束";
}
//nTotalNum指数组中整数的总个数,nBeginNum指数组开始的位置(从0开始计数),nEndNum指翻转数组结束的位置
bool ReverseNum(int nData[],int nTotalNum,int nBeginNum,int nEndNum)
{
// 判断输入信息是否符合要求
if ((nTotalNum<=0) ||
(nBeginNum>=nEndNum) ||
(nEndNum>=nTotalNum))
{
return false;
}
int n;
for (int i= nBeginNum,j=nEndNum; i<j; ++i,--j)
{
n = nData[i];
nData[i] = nData[j];
nData[j] = n;
}
return true;
}
// nTotalNum数组存放总数,nPos是前几个数进行变换
void Reverse(int nTextNum[],int nTotalNum,int nPos)
{
ReverseNum(nTextNum,nTotalNum,0,nPos-1);
ReverseNum(nTextNum,nTotalNum,nPos,nTotalNum-1);
ReverseNum(nTextNum,nTotalNum,0,nTotalNum-1);
}
网友评论