注册 登录
编程论坛 C++教室

用for循环写一个数字砖石图形,有没有大神在的*……

a14361000 发布于 2015-11-21 21:02, 914 次点击
只有本站会员才能查看附件,请 登录
就是这个形状的,新手求助,有没有帮忙的大神呀
3 回复
#2
不玩虚的2015-11-21 23:14

        int count = 0;//计数
        int n = 4;//层数
        int position = n;//位置
        for (int i = 1; i <= 2*n-1; i++) {
            int old = position;
            for (int k = 1; k <= 2*n-1; k++) {
                if(i<=n){
                    if (k == position) {
                        if (count > i-1) {
                            cout<<" ";
                        } else {
                            cout<<i;
                           
                        }
                        count++;
                        position = position + 2;
                    } else {
                       cout<<" ";
                    }
                }else{
                    if (k == position) {
                        if (count > 2*n-1-i) {
                           cout<<" ";
                        } else {
                            cout<<(2*n-1-i+1);
                           
                        }
                        count++;
                        position = position + 2;
                    } else {
                        cout<<" ";
                    }
                }
               

            }
            if(i>=n){
                position = i-n+2;
            }else{
                position = old - 1;
            }
            count = 0;
           cout<<endl;
        }

    //写的很笨,自己优化下吧
#3
wmf20142015-11-21 23:19
这种问题好多人问过,搜搜
#4
liu13145202015-12-08 22:38

#include <stdio.h>
#include <stdlib.h>
void main()
{
    int num = 4;//定义变量名及类型
    printf("打印图形一\n");//输出信息
    for (int i = 1; i <= num; i++)//循环语句,定义变量名称,范围,步长,初始值
    {
        for (int j = 1; j <= num - i; j++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf(" ");//输出值
        }
        for (int k = 1; k <= 2 * i - 1; k++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf("%c", 'A' + k - 1);//输出值
        }
        printf("\n");//换行
    }
    printf("\n\n");//换行
    printf("打印图形二\n");//输出信息
    for (int i = 1; i <= num; i++)//循环语句,定义变量名称,范围,步长,初始值
    {
        for (int j = 1; j <= num - i; j++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf(" ");//输出值
        }
        for (int k = 1; k <= 2 * i - 1; k++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf("%c", 'A' + i - 1);//输出值
        }
        printf("\n");//换行
    }
    printf("\n\n\n");//换行
    printf("打印图形三\n");//
    for (int i = 1; i <= num; i++)//循环语句,定义变量名称,范围,步长,初始值
    {
        for (int j = 1; j <= num - i; j++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf(" ");//输出值
        }
        for (int k = 1; k <= 2 * i - 1; k++)//嵌套循环语句,定义变量名称,范围,步长,初始值
        {
            printf("%c", 'F' - i - 1);//输出值
        }
        printf("\n");//换行
    }
    system("pause");
}
这个你去运行看,会找到灵感的
1