贴吧图像
05/08/2017

*


***


*****


 ***


  *

这个怎么做


更新时间:05/08/2017
回复(4)
3675?1464853545
张迅晖 2年前

如果题目没有错,那直接按照格式cout每一行就好了,没有什么规律可循

3675?1464853545
张迅晖 2年前
3675?1464853545
张迅晖 2年前

如果第三行三个星号移动到中间那么代码是这样的:

#include <iostream>

#include <math.h>

using namespace std;


void printLine(int n, int i) // 输出一行,n表示一共多少行,i表示第几行

{

    int spaceNum = std::abs(2 * i - 1 - n);

    int starNum = n - spaceNum;

    for(int j = 1; j <= n; j++)

    {

        if(j <= spaceNum / 2 || j > spaceNum / 2 + starNum)

        {

            cout << " ";

        }

        else

        {

            cout << "*";

        }

    }

    cout << endl; // 输出每一行最后的回车换行符

}


int main(int argc, const char * argv[]) {

    int n = 7;  // 表示一共多少行

    for(int i = 1; i <= n; i++) // 循环输出每一行

    {

        printLine(n, i);

    }

    return 0;

}

main函数中的n表示行数(也表示最多的一行星号数量),你的题目中是5,需要自己改一下

3675?1464853545
张迅晖 2年前

首先你这个题目是不是打错了,第四行是不是三个*同时向右移动一格?

0?1470885445
登录后可添加回复
贴吧图像
吧主:
黄天翔
回答:3
喜欢C++的同学欢迎交流好的学习方法!!
问题和建议
还能输入50个字符 Submit

加入QQ群

关注微信APP


×