美文网首页
第一章1.1 循环左移 2019-01-27

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

作者: 我弟弟数学没学好 | 来源:发表于2019-01-27 15:33 被阅读0次

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

    }

    相关文章

      网友评论

          本文标题:第一章1.1 循环左移 2019-01-27

          本文链接:https://www.haomeiwen.com/subject/lragjqtx.html