C++ 在二维字符数组中绘制三角形

C++ 在二维字符数组中绘制三角形,c++,for-loop,multidimensional-array,char,geometry,C++,For Loop,Multidimensional Array,Char,Geometry,我试图使用2d字符数组作为形状的表格,但在绘制三角形时遇到了困难。给定三角形顶部的位置及其高度,我的函数应该通过更改我最初分配给“”的元素,在25行80列的字符数组中绘制一个三角形。到目前为止,我已经做到了: int i, j; for(i=0; i<height; i++){ for(j=-i; j<=i; j++){ screen[x+i][y+j]=ch; } } 但不知什么原因,它似乎不起作用,我也不明白为什么 很抱歉,我没有澄清我的

我试图使用2d字符数组作为形状的表格,但在绘制三角形时遇到了困难。给定三角形顶部的位置及其高度,我的函数应该通过更改我最初分配给“”的元素,在25行80列的字符数组中绘制一个三角形。到目前为止,我已经做到了:

int i, j;
for(i=0; i<height; i++){
    for(j=-i; j<=i; j++){
        screen[x+i][y+j]=ch;
    }
}    
但不知什么原因,它似乎不起作用,我也不明白为什么

很抱歉,我没有澄清我的代码的功能。 我有以下功能来打印我的2d阵列:

void PrintScreen(){
    int i, j;
    for(i=0; i<SCREEN_HEIGHT; i++)
    {
        for(j=0; j<SCREEN_WIDTH; j++)
        {
            printf("%c", screen[i][j]);
        }
        printf("\n");
    }
} // end-PrintScreen
void PrintScreen(){
int i,j;

对于(i=0;i这个从您的代码片段中浓缩的极简主义示例对我很有用:

#include <stdio.h>

#define SCREEN_HEIGHT 25
#define SCREEN_WIDTH 80

char screen[SCREEN_HEIGHT][SCREEN_WIDTH];

int main(int argc, char* argv[])
{
    int height = 10;
    int x = 1, y = 10;

    int i, j;
    for(i=0; i<height; i++){
        for(j=-i; j<=i; j++){
            screen[x+i][y+j]='*';
        }
    }    

    for(i=0; i<SCREEN_HEIGHT; i++) {
        for(j=0; j<SCREEN_WIDTH; j++) {
            printf("%c", screen[i][j]==0 ? ' ' : '*');
        }
        printf("\n");
    }

}
#包括
#定义屏幕高度25
#定义屏幕宽度80
字符屏幕[屏幕高度][屏幕宽度];
int main(int argc,char*argv[])
{
整数高度=10;
int x=1,y=10;
int i,j;

对于(i=0;i)您目前的代码图是什么?如何分配和初始化
屏幕
数组?最好发布完整的示例。
“如果其他人需要帮助解决相同的问题,上面的代码应该可以正常工作。”
甚至没有人知道问题出在哪里,上面的代码也不完整。
#include <stdio.h>

#define SCREEN_HEIGHT 25
#define SCREEN_WIDTH 80

char screen[SCREEN_HEIGHT][SCREEN_WIDTH];

int main(int argc, char* argv[])
{
    int height = 10;
    int x = 1, y = 10;

    int i, j;
    for(i=0; i<height; i++){
        for(j=-i; j<=i; j++){
            screen[x+i][y+j]='*';
        }
    }    

    for(i=0; i<SCREEN_HEIGHT; i++) {
        for(j=0; j<SCREEN_WIDTH; j++) {
            printf("%c", screen[i][j]==0 ? ' ' : '*');
        }
        printf("\n");
    }

}