c++语言中的几个小问题(简单)

********************************************************这种形式怎么用程序表示?另外,如上的形式如何用程序表示?求... ******** **

******* ****
****** ******
***** ********
****
***
**
*
这种形式怎么用程序表示? 另外,如上的形式如何用程序表示?
求助各位编程大师帮忙。
展开
 我来答
百合薫
推荐于2016-08-30 · TA获得超过148个赞
知道答主
回答量:55
采纳率:0%
帮助的人:68.2万
展开全部

以下程序为C语言,C++同理

限于时间关系,只做左边那个,其他的其实是左边那个的变种

开发环境 ViSual Studio 2013

首先,为了能使用printf需要引用stdio.h

#include <stdio.h>

然后定义星星的行列数

static int MAXW = 8;//行
static int MAXH = 8;//列

函数宣言及内容

void drawMark(){ printf("*"); }//画星号
void drawSpace(){ printf(" "); }//画空格
void doSkip(){ printf("\n"); }//换行

程序入口主main

void main()
{

变数宣言

int saveh = 0;//用来记录行数变化,进而判断星星是否换行
int wloop = MAXW;//用来计算星星数量
int sloop = MAXW;//用来计算空格数量

竖行循环

/*矩阵描画开始*/
for (int h = 0; h < MAXH; h++)
{

换行及画空格条件

if (saveh != h)//如果画过的行数不等于当前的行数(也就是换行了)
{

换行及画空格处理

wloop--;//星星数减少
sloop++;//空格数增多
saveh = h;//同步行数记录

描画处理

for (int w = 0; w < sloop; w++)//先画空格,空格数从少变多
{
    drawSpace();//空格描画=>{ printf(" "); }
}
for (int w = 0; w < wloop; w++)//画星号,星号数由多变少
{
    drawMark();//星星描画=>{ printf("*"); }
}

换行执行

doSkip();

结尾

}
    getchar();//等待用户输入
}

PS: 这个画星星的方法在应用中比如说游戏地图的描画就是靠这个。



补充个上面的C转C++的

/*main.cpp*/
#include <stdio.h>
#include "main.h"

void main()
{
drawArray *mDrawArray = new drawArray();

mDrawArray->main();

delete mDrawArray;
}

drawArray::drawArray()
{
}

drawArray::~drawArray()
{
}

void drawArray::main()
{
static int MAXW = 8;
static int MAXH = 8;

int saveh = 0;
int wloop = MAXW;
int sloop = MAXW;

for (int h = 0; h < MAXH; h++)
{
if (saveh != h)
{
wloop--;
sloop++;
saveh = h;
}

for (int w = 0; w < sloop; w++)
{
drawSpace();
}
for (int w = 0; w < wloop; w++)
{
drawMark();
}
//saveh = h;
doskip();
}

getchar();
}
/*main.h*/
#ifndef _MAIN_H_
#define _MAIN_H_

class drawArray
{
public:
drawArray();
~drawArray();


void main();
void drawMark(){ printf("*"); }
void drawSpace(){ printf(" "); }
void doskip(){ printf("\n"); }
private:

};



#endif
百度网友009594e
2015-07-28 · TA获得超过436个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:48.7万
展开全部
在你之前我已经看到甚至回答过很多类似的问题了(虽然你不知道......)。
这样的问题在C/C++语言学习的初级阶段是比较简单也比较重要的问题,它可以锻炼你的程序设计逻辑思维,一旦你自己努力想出了解决思路并编码调试实现,那表明你在起步阶段走上一个台阶了。但看一遍别人给的答案,对你自身的进步是微乎其微的。

所以,还是建议自己思考。
追问
空格怎么表示(程序)
追答
std::cout << " ";     //双引号之间敲一个空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式