梯形 C/C++

代码实现:

#include <cstdio>
/*图案打印问题的一般思路
 *一、申请二维数组(固定大小,放在全局变量的位置
 *二、根据条件,从任意方向设置我们的二维数组。
 *三、把二维数组的每一行边界的后一个位置使用'\0',赋值
 *四、使用printf %配合循环打印每一行
 *    输入:         4
      输出 :            ****
                      ******
                    ********
                  **********
 */
char arr[1000][3000];
int main(){
    int h;
    while(scanf("%d",&h) != EOF){
//        for(int i = 0;i<h;i++){
//            for (int j = 0; j < 2*h-2-2*i; ++j) {
//                printf(" ");
//            }
//            for(int j = 0;j < h+2*i;++j){
//                printf("*");
//            }
//            printf("\n");
//        } //输出梯形

        //利用二维数组
        //将区域全部填上空格
        for (int i = 0; i < h; ++i) {       //高度
            for(int j = 0;j<3*h - 2;++j){   //宽度
                arr[i][j]=' ';
            }
            arr[i][3*h-2] = '\0';  //'\0'用来指示每行字符串的结束
        }
    //填充梯形区域 从下往上填充
        int beg = 0;
        for (int i = h-1; i >= 0 ; --i) {
            for(int j=beg;j<3*h-2;++j){
                arr[i][j]='*';
            }
        beg +=2;
        }

        //输出每个数组的内容
        for(int i = 0;i<h;++i){
//            for (int j = 0; j < 3*h - 2; ++j) {
//                printf("%c",arr[i][j]);
//            }
//            printf("\n") ;
            printf("%s\n",arr[i]);
        }
    }

    return 0 ;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值