|
|
发表于 2020-12-17 22:49:31
|
显示全部楼层
本楼为最佳答案
回帖奖励 +5 鱼币
第75行已经回答你了:@标志着该行结束。你的程序有问题,你用这个吧:
- #include <stdio.h>
- #include <string.h>
- #define HEIGHT 7 // 根据下面定义,每个字母高度均是7行
- const char *letters[] = {
- "\
- \########@\
- \## @\
- \## @\
- \###### @\
- \## @\
- \## @\
- \## @\
- ",
- "\
- \####@\
- \ ## @\
- \ ## @\
- \ ## @\
- \ ## @\
- \ ## @\
- \####@\
- ",
- "\
- \ ###### @\
- \## ##@\
- \## @\
- \ ###### @\
- \ ##@\
- \## ##@\
- \ ###### @\
- ",
- "\
- \## ##@\
- \## ##@\
- \## ##@\
- \#########@\
- \## ##@\
- \## ##@\
- \## ##@\
- ",
- "\
- \ ###### @\
- \## ##@\
- \## @\
- \## @\
- \## @\
- \## ##@\
- \ ###### @\
- "
- };
- int main()
- {
-
- int i,j,k;
- int gap;
- int len;
- int line;
- int temp;
- printf("请输入字母的间隔(空格数):");
- scanf("%d", &gap);
- for (i = 0; i < HEIGHT; i++) // 一行一行打印
- {
- for (j = 0; j < 5; j++) // 打印所有字母的某一行
- {
- k = 0; // k 用于迭代每一行的‘#’字符
- len = strlen(letters[j]) / HEIGHT; // strlen计算得到全部字符 全部字符/7 就是每行用的字符个数
- line = i * len; // 计算当前打印第几行
- while (letters[j][line + k] != '@') // @标志着该行结束
- {
- putchar(letters[j][line + k]);
- k++;
- }
- temp = gap; // 打印字母间的间隔(空格)
- while (temp--)
- {
- putchar(' ');
- }
- }
- putchar('\n');
- }
- return 0;
- }
复制代码 |
|