For循环进阶使用

来源:互联网 发布:淘宝网半袖 编辑:程序博客网 时间:2024/05/23 18:38
/*建立一个类 PHALANX,生成并显示一个折叠方阵。折叠方阵如下图所示。折叠方阵的生成过程为:起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。1   2   5   104   3   6   119   8   7   1216  15  14  13具体要求如下:(1)私有数据成员    int (*p)[20]:指向按照折叠规律存放方阵的二维整型数组。    int startnum:折叠方阵的起始数。    int n:存放方针的层数。(2)公有成员函数    PHALANX (int s, int m ):构造函数,初始化成员数据。    void process():生成起始数为 startnum 的 n 行方阵。    void print():输出折叠方阵。    ~ PHALANX( ):析构函数。(3)在主程序中对该类进行测试。*///两个二层循环完成赋值#include<iostream>using namespace std;class PHALANX{private:    int(*p)[20];    int startnum;    int n;public:    PHALANX(int , int );    void process();    void print();    ~PHALANX();};PHALANX::PHALANX(int s, int m){    startnum = s;    n = m;    p = new int[n][20];}void PHALANX::process(){    //二层循环:一个控制行数一个控制每行个数,列以此类推    for (int i = 0; i < n; i++)    {        p[i][0] = (startnum + i)*(startnum + i);    }    //第一个二层循环完成横行赋值    for (int i = 0; i < n; i++)    {        for (int j = 1; j < i + 1; j++)        {            p[i][j] = p[i][0] - j;        }    }    //第二个循环完成竖列赋值    for (int i = 0; i < n; i++)    {        for (int j = i - 1; j >= 0; j--)        {            p[j][i] = p[i][i] - (i - j);        }    }}void PHALANX::print(){    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            cout << p[i][j] << '\t';        }        cout << endl;    }}PHALANX::~PHALANX(){    delete[]p;}int main(){    PHALANX pha(1, 4);    pha.process();    pha.print();    system("pause");    return 0;}
原创粉丝点击