fkyue 发表于 2021-4-20 11:03:20

求助,C++菱形问题(已有代码)

大佬们,能给俺细细讲讲下面这几个for里面的大小判断怎么理解吗?
怎么得到m-j,2*i-1等等的


#include <iostream>
using namespace std;

int main()
{
        int i, j, m;
        cout << "请输入菱形的阶数:" << endl;
        cin >> m;
        for (i = 1; i <= m; i++)
        {
                for (j = 1; j <= m - i; j++)
                {
                        cout << " ";
                }
                for (j = 1; j <= 2 * i - 1; j++)
                {
                        cout << "*";
                }
                cout << endl;
        }
        for (i = 1; i <= m - 1; i++)
        {
                for (j = 1; j <= i; j++)
                {
                        cout << " ";
                }
                for (j = 1; j <= (2*m-1) - 2 * i; j++)
                {
                        cout << "*";
                }
                cout << endl;
        }


        system("pause");

        return 0;
}

昨非 发表于 2021-4-20 12:17:22


外层循环控制行数
内层循环控制打印的*和空格的数量
这是数学题
建议自己举个数试一试
比如:m=5
然后自己写一下:第一次外循环i是多少?下面对应的每次内循环j又是多少?
外循环执行一次打印一行,是否符合你的要求?
下一次外循环有打印出了什么?
如何通过i控制打印的行数?
如何通过j控制每行打印多少个空格?多少个*?

自己想想不难理解的
页: [1]
查看完整版本: 求助,C++菱形问题(已有代码)