1 条题解

  • 0
    @ 2025-9-17 17:57:48

    闲着无聊写写题解

    我的思路是按行打印,毕竟1,2,4,5行都挺好写的 所以只需要考虑第三行就行了

    输入略

    这里给出第三行代码

        //打印第三行
        cnt = 0;
        for(int i = 0;i < strlen(str);i++){
            if(cnt == 0 && i == 0){
                printf("#.%c.",str[i]);
            }else if(cnt == 1 && i != strlen(str)-1){
                printf("#.%c.*",str[i]);
            }else if(cnt == 2 && i != strlen(str)-1){
                printf(".%c.",str[i]);
            }else if(cnt == 0 && i != strlen(str)-1){
                printf("*.%c.",str[i]);
            }else if(cnt == 1 && i == strlen(str)-1){
                printf("#.%c.#",str[i]);
            }else if(cnt == 2 && i == strlen(str)-1){
                printf(".%c.*",str[i]);
            }else if(cnt == 0 && i == strlen(str)-1){
                printf("*.%c.#",str[i]);
            }
            cnt = (cnt+1)%3;
        }printf("\n");
    

    别看这么多if else,其实思路是很清晰的,你只需要分两种情况讨论:

    1. 在打印结尾
    2. 不在打印结尾

    输出相对应的字符就行了

    • 1

    信息

    ID
    366
    时间
    1000ms
    内存
    64MiB
    难度
    7
    标签
    递交数
    74
    已通过
    15
    上传者