我正在读一本有关C的书,它问我的问题是:
编写一个使用printf在屏幕上显示以下图片的程序
然后是带有星号的复选标记。所以首先想到的是编写一堆使用格式宽度说明符的printf()语句。所以我想到了这个:
int main() {
printf("This program prints a checkmark using asteriks\n");
char asterik = '*';
printf("%10c\n", asterik);
printf("%9c\n", asterik);
printf("%8c\n", asterik);
printf("%7c\n", asterik);
printf("%6c\n", asterik);
printf("%c %3c\n", asterik, asterik);
printf("%2c %c\n", asterik, asterik);
printf("%3c\n", asterik);
return 0;
}
我知道这段代码很丑陋,整个9码都令人作呕,但我真的想知道是否有一种更高效,更清洁的方式?考虑到本课在第2章中问过,我不确定作者是否打算这样写,在这里我们仅讨论了一些非常基本的内容,而与之无关。 (由于K&R,我只记得如何调整宽度)
最佳答案
仅具有一个字符串文字可能会更好,如下所示:
const char checkmark[] =
" *\n"
" * \n"
" * \n"
"* * \n"
" * * \n"
" * \n"
;
printf("%s", checkmark);