由点和字母构成的图像C++

由点和字母构成的图像C++,c++,c++11,C++,C++11,非常基本的Q,因为我刚开始编码,但我在某个点上卡住了,不知道该怎么做 我需要编写代码,以获得由点和X字母组成的菱形,大小基于用户提供的值n,3≤ N≤ 八十 例如: 正如我所提到的,我几乎没有经验,所以我能得到的就是n=6的这个形状 高度可以,与widht相同,但不幸的是,X的数量和位置不正确:/ 我的代码: 感谢所有帮助mi完成这一任务的好心人:我帮你得分。我希望您在查看我的更改后,能够进一步更新代码以获得所需的图片 for (int i = 1; i <= h; i++) {

非常基本的Q,因为我刚开始编码,但我在某个点上卡住了,不知道该怎么做

我需要编写代码,以获得由点和X字母组成的菱形,大小基于用户提供的值n,3≤ N≤ 八十

例如:

正如我所提到的,我几乎没有经验,所以我能得到的就是n=6的这个形状

高度可以,与widht相同,但不幸的是,X的数量和位置不正确:/

我的代码:


感谢所有帮助mi完成这一任务的好心人:

我帮你得分。我希望您在查看我的更改后,能够进一步更新代码以获得所需的图片

for (int i = 1; i <= h; i++)
{
    for (int k = 1 ; k <= (h-i) / 2 ; k++)
    {
        cout << ".";
    }
    for (int j = 1; j <= i ; j++)
    {
        cout << "X";
    }
    for (int k = 1 ; k <= (h-i) / 2 ; k++)
    {
        cout << ".";
    }
    cout << endl;
}

在这类问题中,你可以把问题分成不同的部分。例如,对于n=6,图像可分为4个镜像:

..X
.XX
XXX
那么

倒挂着他们的镜子。 你说你可以画第一个。我想如果你再多给点时间,你也可以打印完整的图像

但是,如果您有问题,下面是代码


对于int i=1;i> p>因为这被标记为C++问题,所以我们使用STD::string和三个循环。
#include <iostream>
#include <string>
void print_diamond(int n)
{
    int np = n / 2, nm = (n - 1) / 2;
    int npl = np, nml = nm;
    std::string str(n, '.');
    for (int i = 0; i < nm; i++)
    {
        str[npl++] = 'X'; str[nml--] = 'X';
        std::cout << str << std::endl;
    }
    for (int i = nm; i <= np; i++)
    {
        str[npl] = 'X'; str[nml] = 'X';
        std::cout << str << std::endl;
    }
    for (int i = np; i < n - 1; i++)
    {
        str[npl--] = '.'; str[nml++] = '.';
        std::cout << str << std::endl;
    }
    std::cout << std::endl;
}
打印所有钻石,打造更加闪亮的世界

int main()
{
    for (int n = 3; n < 81; n++)
    {
        print_diamond(n);
    }
}

欢迎来到SO。请注意避免被否决,并帮助他人回答您的问题。谢谢如果这是一个家庭作业问题,请告诉它,也许张贴家庭作业问题,因为它是。请毫不犹豫地阅读和阅读
#include <iostream>
#include <string>
void print_diamond(int n)
{
    int np = n / 2, nm = (n - 1) / 2;
    int npl = np, nml = nm;
    std::string str(n, '.');
    for (int i = 0; i < nm; i++)
    {
        str[npl++] = 'X'; str[nml--] = 'X';
        std::cout << str << std::endl;
    }
    for (int i = nm; i <= np; i++)
    {
        str[npl] = 'X'; str[nml] = 'X';
        std::cout << str << std::endl;
    }
    for (int i = np; i < n - 1; i++)
    {
        str[npl--] = '.'; str[nml++] = '.';
        std::cout << str << std::endl;
    }
    std::cout << std::endl;
}
int main()
{
    for (int n = 3; n < 81; n++)
    {
        print_diamond(n);
    }
}