题解 | #箭形图案#

箭形图案

https://www.nowcoder.com/practice/a6d1081e0c9a42f19e42ed6cd91556c1

#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        //输出上半部分
        //定义循环,以3为例,这个循环总共输出四行
        for (int i = 1; i <= n + 1; i++) {
            //输出空格部分
            for (int j = 1; j <= 2 * (n - i + 1); j++) {
                printf(" ");
            }
            //输出*
            for (int k = 1; k <= i; k++) {
                printf("*");
            }
            //每一行结束后输出换行符
            printf("\n");
        }
        //输出下半部分,因为上半部分包含输出最多的情况,但仍输出n行
        for (int a = n; a > 0; a--) {
            //输出空格,下半部分的第一行就有两个空格,所以要加一,每次移位两个空格所以乘以2,上面for循环定义的int a减少的,所以每换行时2*(n-a+1)增加两个
            for (int b = 1; b <= 2 * (n - a + 1); b++) {
                printf(" ");
            }
            //输出*
            for (int c = a; c > 0 ; c--) {
                printf("*");
            }
            //输出换行符
            printf("\n");
        }
    }
    return 0;
}

全部评论

相关推荐

LuvSran:是人我吃。老师就是学校呆久了,就业方面啥都不懂,还自以为是为了我们就业好。我学校就一破双非,计科入行率10%都没有,某老师还天天点名,说是出勤率抬头率前排率高了,华为什么的大厂就会来,我们就是不好好上课才没有厂来招。太搞笑了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务