2 qq 33854374 qq_33854374 于 2016.09.25 21:05 提问

如何用C++写出一下星图,求大神帮忙! 20C

图片说明

4个回答

cqj339500
cqj339500   2016.09.26 08:38
printf("*********                ***                     *                   *        \n");
printf("*          *              *     *                  ***                 *  *      \n");
printf("*          *             *       *                *****             *     *     \n");
printf("*          *             *       *                  *                *       *    \n");
printf("*          *             *       *                  *               *        *   \n");
printf("*          *             *       *                  *                *      *    \n");
printf("*          *             *       *                  *                 *    *     \n");
printf("*          *              *     *                   *                  *  *      \n");
printf("*********               ***                     *                   *        \n");
qq_33854374
qq_33854374 C++语言,好尴尬呀
大约一年之前 回复
qq_29040363
qq_29040363 凸(艹皿艹 )
大约一年之前 回复
feng1790291543
feng1790291543   Ds   Rxr 2016.09.25 22:04

四个星图,用四个算法写出来,然后拼在一起就行了

qq_33854374
qq_33854374 求代码!
大约一年之前 回复
qq_36252515
qq_36252515   2016.09.27 15:59

1找出每个图形的对称规则,寻找一些规律,通过编写代码

qq_27587417
qq_27587417   2016.09.28 08:44

可能我这中方法也是比较逗比的一种,不可以玩玩,哈哈

 #include <iostream>
#include <vector>

using namespace std;
void CreatStar(vector<vector<int>> &vt2);
void Display(vector<vector<int>> &vt2);

const int line=9;
const int column=41;
int main()
{
    vector<vector<int>> vt2;
    CreatStar(vt2);
    Display(vt2);
    system("pause");
    return 0;
}

void CreatStar(vector<vector<int>> &vt2)
{
    vector<int> vt;
    for (int i=0;i<line;i++)
    {
        vt.clear();
        for (int j=0;j<column;j++)
        {
            if (((0==i||line-1==i)&&(j>=0&&j<9))||(0==j||8==j))//正方形
            {
                vt.push_back(1);
            }
            //圆形
            else if (((11==j||19==j)&&(i>1&&i<7))||(0==i||line-1==i)&&(j>13&&j<17)||((1==i||line-2==i)&&(12==j||18==j)))
            {
                vt.push_back(1);
            }
            //箭头
            else if (24==j||(1==i&&(j>22&&j<26))||(2==i&&(j>21&&j<27)))
            {
                vt.push_back(1);
            }
            else if (((0==i||line-1==i)&&34==j)||((1==i||7==i)&&(33==j||35==j))||((2==i||6==i)&&(32==j||36==j))||((3==i||5==i)&&(31==j||37==j))||(4==i&&(30==j||38==j)))
            {
                vt.push_back(1);
            }
            else
            {
                vt.push_back(0);
            }
        }
        vt2.push_back(vt);
    }
}

void Display(vector<vector<int>> &vt2)
{
    for (int i=0;i<line;i++)
    {
        for (int j=0;j<column;j++)
        {
            if (1==vt2.at(i).at(j))//二维数组里是1的则打印*,否则打印空格
            {
                cout<<"*";
            }
            else
            {
                cout<<" ";
            }
        }
        cout<<endl;
    }
}

运行结果如下:
图片说明

Csdn user default icon
上传中...
上传图片
插入图片