Cs50 Mario:我该如何改进这段代码?

时间:2017-07-09 19:56:05

标签: c cs50

我花了一整天才弄明白这一点,但即使我完成了它,我也不完全理解它是如何工作的,我觉得有更好或更清晰的写作方式。

有人可以解释我如何改进我的代码吗?

#include<cs50.h>
#include<stdio.h>

int main(void)
{
    int rows, height, spaces, hashes;

    do
    {
        printf("Height: ");
        height = get_int();
    }
    while(height < 0 || height > 23);

    for(rows = 0 ; rows < height; rows++)
    {
        for(spaces = height - 1; spaces > rows; spaces--)
        {
            printf(" ");
        }

        for(hashes = 0; hashes < spaces + 2; hashes++)
        {
            printf("#");
        }

        printf("\n");
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

最好先尝试了解代码的作用。从输入jQuery( document ).ready(function() { jQuery("#ct_div_block_121_post_13").hide(600); }); jQuery("#ct_text_block_86_post_13").click(function(){ jQuery("#ct_div_block_121_post_13").show(600); jQuery("#ct_div_block_90_post_13").hide(600); }); jQuery("#ct_text_block_84_post_13").click(function(){ jQuery("#ct_div_block_90_post_13").show(600); jQuery("#ct_div_block_121_post_13").hide(600); }); 开始,直接在纸上完成。

如果您热衷于此,您可能希望探索1 width and precision formatting,其中格式说明符中的每个printf都被相应的函数参数替换。但要注意 - *是一个复杂而详细的功能。这也引入了数组

printf

输入char hatch[] = "##############################"; for(rows = 0; rows < height; rows++) { printf("%*.*s\n", height + 1, rows + 2, hatch); } 程序打印

1

输入## 时打印

5

这样做。循环包含一条指令。