第一章1.1 循环左移 2019-01-27

题:设将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);

}

猜你喜欢

转载自blog.csdn.net/weixin_33883178/article/details/87132910